<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Javascript on nnasaki のブログ</title>
    <link>https://blog.nnasaki.com/categories/javascript/</link>
    <description>Recent content in Javascript on nnasaki のブログ</description>
    <image>
      <title>nnasaki のブログ</title>
      <url>https://blog.nnasaki.com/ogp.png</url>
      <link>https://blog.nnasaki.com/ogp.png</link>
    </image>
    <generator>Hugo</generator>
    <language>ja-JP</language>
    <lastBuildDate>Thu, 04 May 2017 08:45:29 +0900</lastBuildDate>
    <atom:link href="https://blog.nnasaki.com/categories/javascript/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Mac で Chrome のヘッドレスモードを試してみた</title>
      <link>https://blog.nnasaki.com/entry/2017/05/04/084529/</link>
      <pubDate>Thu, 04 May 2017 08:45:29 +0900</pubDate>
      <guid>https://blog.nnasaki.com/entry/2017/05/04/084529/</guid>
      <description>&lt;p&gt;Chrome がヘッドレスモードに対応したということなので試してみました。コマンドラインからchromeが扱え、URLのテキスト出力、pdf出力とpng出力が出来ます。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;EXTENDED BODY:&lt;/p&gt;
&lt;h4 id=&#34;環境&#34;&gt;環境&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;macOS Sierra version 10.12.4&lt;/li&gt;
&lt;li&gt;Chrome &lt;strong&gt;Canary&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;手順&#34;&gt;手順&lt;/h3&gt;
&lt;p&gt;次のページの手順をなぞってみました。環境に書いた通り macOS で試しています。Windows はまだ非サポートのようです。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://developers.google.com/web/updates/2017/04/headless-chrome&#34;&gt;Getting Started with Headless Chrome  |  Web  |  Google Developers&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;chrome-canary-を取得する&#34;&gt;Chrome Canary を取得する&lt;/h4&gt;
&lt;p&gt;まず一番最初で躓きました。コマンドラインで動かすとエラーが出ました。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pink-poodle:~ nnasaki$ chrome --headless --dump-dom https://www.chromestatus.com/
[0503/211508.668380:ERROR:resource_bundle.cc(767)] Failed to load /Applications/Google Chrome.app/Contents/Versions/58.0.3029.96/Google Chrome Framework.framework/Versions/A/resources.pak
Some features may not be available.
Segmentation fault: 11
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;先のドキュメントを見返すとちゃんと書いてありました。&lt;strong&gt;version 59 以上対応&lt;/strong&gt;です。普段使っている stable はまだ 58 でした。&lt;/p&gt;
&lt;figure class=&#34;figure-image figure-image-fotolife&#34;&gt;&lt;img src=&#34;https://blog.nnasaki.com/images/20170503220232.png&#34; alt=&#34;f:id:nnasaki:20170503220232p:plain&#34; title=&#34;f:id:nnasaki:20170503220232p:plain&#34; class=&#34;hatena-fotolife&#34; itemprop=&#34;image&#34;&gt;&lt;figcaption&gt;f:id:nnasaki:20170503220232p:plain&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Chrome Canary は 2017/5/3 現在、version 60 なので次のURLからダウンロードします。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.google.co.jp/chrome/browser/canary.html&#34;&gt;www.google.co.jp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;こんな感じでインストール出来ました。&lt;/p&gt;
&lt;figure class=&#34;figure-image figure-image-fotolife&#34;&gt;&lt;img src=&#34;https://blog.nnasaki.com/images/20170504000506.png&#34; alt=&#34;f:id:nnasaki:20170504000506p:plain&#34; title=&#34;f:id:nnasaki:20170504000506p:plain&#34; class=&#34;hatena-fotolife&#34; itemprop=&#34;image&#34;&gt;&lt;figcaption&gt;f:id:nnasaki:20170504000506p:plain&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h4 id=&#34;alias-を設定する&#34;&gt;Alias を設定する&lt;/h4&gt;
&lt;p&gt;一々、 &lt;code&gt;&amp;quot;/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome&amp;quot;&lt;/code&gt; と長ったらしいのを入力するのは面倒なので、alias を設定します&lt;/p&gt;</description>
    </item>
    <item>
      <title>jQuery.flickSimple.js で a タグじゃない要素のクリックイベントを拾いたい</title>
      <link>https://blog.nnasaki.com/entry/2012/09/13/020752/</link>
      <pubDate>Thu, 13 Sep 2012 02:07:52 +0900</pubDate>
      <guid>https://blog.nnasaki.com/entry/2012/09/13/020752/</guid>
      <description>&lt;p&gt;ページ全体じゃなくて div で区切ったテーブルとかリストだけスクロールさせたいときに &lt;a href=&#34;http://www014.upp.so-net.ne.jp/makog/js/jquery_flicksimple/#10&#34;&gt;jQuery.flickSimple.js&lt;/a&gt; というのを使っている。これはタッチで任意の要素をフリックでスクロールできるからすごく便利なんだけど、とある要素をクリックしたというイベントが a タグが入っていないと発生しなくて困った。例えば、$(&amp;rsquo;#verticaly&amp;rsquo;).on(&amp;lsquo;click&amp;rsquo;, &amp;rsquo;li&amp;rsquo;, function(){ alert(&amp;ldquo;test&amp;rdquo;); }); っていうのを無理やり追加してリストにクリックイベントを追加したとしても、フリック時もクリックと判定されてしまうのでうまくいかない。 デモは以下。&lt;/p&gt;
&lt;p&gt;ちょっと見にくいですが、縦にフリックでスクロールが出来ます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://d.hatena.ne.jp/keyword/jQuery&#34;&gt;jQuery&lt;/a&gt;.flickSimple.js は onClick イベントが用意されていて以下のように書くことでクリックイベントを拾えるようになる。&lt;/p&gt;
&lt;p&gt;ところが上記の onClick イベントは a タグがある場合のみ有効となっているようで、上記HTML から a を取り除いてしまうと以下のようにクリックイベントが起きない。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/makog/jQuery.flickSimple.js/blob/master/jquery.flicksimple.js&#34;&gt;GitHub のソース&lt;/a&gt;を見ると下記のようになっていて、意図的にはじいている。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;touchend: function(e) {
			var o = this;
			if ( o.disabled || o.startX === null || o.startY === null ) { return; }
			o.startX = null;
			o.startY = null;
			if ( o.anc &amp;amp;&amp;amp; ! o.touchhold ) {
				if ( o.onClick ) {
					o.onClick( o.anc );
				}
```ちょっと見づらいですが、以下のように改造してみました。//+としているのが追加したところです。
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;touchend: function(e) {
    var o = this;
    if ( o.disabled || o.startX === null || o.startY === null ) { return; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;// chg アンカー以外のクリックイベントに対応させる
var te = o.touchable ? e.originalEvent.touches[0] : e; //+
var nowX = te.clientX; //+
var nowY = te.clientY; //+&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
