<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Web scratch &#187; Greasemonkey</title> <atom:link href="http://efcl.info/category/firefox/greasemonkey/feed/" rel="self" type="application/rss+xml" /><link>http://efcl.info</link> <description>フリーソフトやFirefoxなどについて、web全般なサイト</description> <lastBuildDate>Sat, 21 Jan 2012 23:30:41 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Scriptish v0.1.3の更新内容とGreasemonkeyの互換性について</title><link>http://efcl.info/2011/0712/res2923/</link> <comments>http://efcl.info/2011/0712/res2923/#comments</comments> <pubDate>Tue, 12 Jul 2011 08:07:44 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Firefox]]></category> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[Scriptish]]></category><guid
isPermaLink="false">http://efcl.info/?p=2923</guid> <description><![CDATA[Scriptishが0.1 -&#62; 0.1.3へとアップデートされたのでそれの更新内容を調べてみる。 - Version 0.1.1 issues - Version 0.1.2 issues - Version 0 [...]]]></description> <content:encoded><![CDATA[<p><a
href="https://addons.mozilla.org/ja/firefox/addon/scriptish/">Scriptish</a>が0.1 -&gt; 0.1.3へとアップデートされたのでそれの更新内容を調べてみる。</p><p>- <a
href="https://github.com/erikvold/scriptish/issues?milestone=5&amp;state=closed">Version 0.1.1 issues</a> <br
/>- <a
href="https://github.com/erikvold/scriptish/issues?milestone=7&amp;state=closed">Version 0.1.2 issues</a> <br
/>- <a
href="https://github.com/erikvold/scriptish/issues?milestone=10&amp;state=closed">Version 0.1.3 issues</a></p><p>に全部載っている事です。 <br
/>バグとかは面倒なので省いています。結構いろいろあるので気になる人は上のを見ておくといい。</p><ul><li><div><a
href="https://github.com/erikvold/scriptish/issues/347">#347: support GM&#8217;s openInTab&#8217;s new aLoadInBackground argument &#8211; Issues &#8211; erikvold/scriptish &#8211; GitHub</a> <br
/><a
href="https://github.com/erikvold/scriptish/wiki/GM_openInTab">GM_openInTab</a>に、バックグラウンドでタブを開くオプションが入った</div></li><li><div><a
href="https://github.com/erikvold/scriptish/issues/225">#225: Add ignoreRedirect argument to GM_xhr &#8211; Issues &#8211; erikvold/scriptish &#8211; GitHub</a> <br
/><a
href="https://github.com/erikvold/scriptish/wiki/GM_xmlhttpRequest">GM_xmlhttpRequest</a>にXHR先のリダイレクトを無視する<em>ignoreRedirect</em>のオプションが入った。</div></li><li><div><a
href="https://github.com/erikvold/scriptish/issues/374">#374: console.log etc. should be hooked to the corresponding web console &#8211; Issues &#8211; erikvold/scriptish &#8211; GitHub</a> <br
/>Firefox4から<a
href="https://developer.mozilla.org/en/Using_the_Web_Console">Web Console</a>が入ったので、console APIがそれにも対応(Firebugとか使ってればあんまり関係ない)</div></li><li><div><a
href="https://github.com/erikvold/scriptish/issues/338">#338: Add a hidden preference to allow customizing support for URI scheme &#8211; Issues &#8211; erikvold/scriptish &#8211; GitHub</a> <br
/>geo: URI scheme handler, lp: URI scheme handler といった、他の拡張などで用意されたURIスキームでもスクリプト動かせるオプションが用意された。 <br
/>extensions.scriptish.enabledSchemes.* という設定をabout:configから作って真偽値を入れる事で可能になるようだ。 <br
/>extensions.scriptish.enabledSchemes.foo が true ならfoo: というスキームで動作する。 <br
/>- <a
href="https://github.com/erikvold/scriptish/wiki/Manual%3A-Preferences">Manual: Preferences &#8211; GitHub</a> <br
/> <br
/><a
href="http://efcl.info/wp-content/uploads/2011/07/image.png"><img
style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://efcl.info/wp-content/uploads/2011/07/image_thumb.png" width="240" height="84" /></a> <br
/> <br
/>それぞれデフォルトで存在するプロトコルも同じ方式で書かれている。</div></li><li><div>configファイルがscriptish-scripts.xml から scriptish-scripts.jsonに <br
/>ちょっと該当bugはどれか分からないけど、多分そうなっています。</div></li></ul><p><strong>オプション画面の変更</strong></p><p><a
href="http://efcl.info/wp-content/uploads/2011/07/image1.png"><img
style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://efcl.info/wp-content/uploads/2011/07/image_thumb1.png" width="240" height="126" /></a></p><p>Scriptish自体のオプション画面も大きく変更されています。</p><p><a
href="http://efcl.info/wp-content/uploads/2011/07/image2.png"><img
style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://efcl.info/wp-content/uploads/2011/07/image_thumb2.png" width="213" height="240" /></a><a
href="http://efcl.info/wp-content/uploads/2011/07/image3.png"><img
style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://efcl.info/wp-content/uploads/2011/07/image_thumb3.png" width="213" height="240" /></a></p><p>一枚目は主要プロトコルでの動作の設定以外は以前とそこまで変わらないので、問題ないと思います。 <br
/>二枚目はグローバルのExclude(スクリプトに書かれてるexcludeとは違ってグローバルで動かないURL)の設定がタブに分かれて書きやすくなっています。</p><p><a
href="http://efcl.info/wp-content/uploads/2011/07/image4.png"><img
style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://efcl.info/wp-content/uploads/2011/07/image_thumb4.png" width="213" height="240" /></a></p><p>三枚目が結構重要な変更が入っていて、特にGreasemonkeyスクリプトを書く人はここの設定に注意する必要があります。</p><p>☑ユーザスクリプトをキャッシュする</p><p>という設定にチェックが入っていると、スクリプトを書き換えてページをリロードしても、すぐには反映しない(キャッシュが使われる)ため、スクリプトを書く人はチェックを外した方がいいと思います。</p><ul><li><a
href="https://github.com/erikvold/scriptish/issues/289">#289: Provide user pref for caching script &amp; dep contents &#8211; Issues &#8211; erikvold/scriptish &#8211; GitHub</a></li></ul><p>後は、UIを常に英語にしたり、今までabout:configから直接決めないといけなかったものもGUIから設定できるようになっているみたいです。(全てではないですが)</p><ul><li><a
href="https://github.com/erikvold/scriptish/wiki/Manual%3A-Preferences">Manual: Preferences &#8211; GitHub</a></li></ul><p>これ以外にも、パフォーマンスとか内部のバグなど結構改善されてると思います。</p><h3>Greasemonkeyとの互換性の話</h3><p>新しいAPIはGreasemonkeyが実装してくれないと互換性はない(fail safeを書くか、分岐するなどで対処)ですが、元々あった<a
href="https://github.com/erikvold/scriptish/wiki/GM_openInTab">GM_openInTab</a>などは拡張して実装されてるので基本的にGreasemonkeyと互換性があると思います。</p><p>ただ、GM_registerMenuCommandはGreasemonkeyでは第一引数にeventオブジェクトが渡されるようになって、</p><div
id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode"><span class="kwrd">function</span> sayHello(evt) { console.log(evt) }<br />GM_registerMenuCommand(<span class="str">&quot;Hello, world (simple)&quot;</span>, sayHello);</pre></div><p>のようなコードがScriptishではundefinedで、Greasemonkeyで動かすとなぜかイベントオブジェクトが入るようになり互換性がちょっとないです。(これはGreasemonkeyが勝手に壊した感じです)</p><p
id="codeSnippetWrapper"></p><pre id="codeSnippet" class="csharpcode"><span class="kwrd">function</span> sayHello(evt) { console.log(evt) }<br />GM_registerMenuCommand(<span class="str">&quot;Hello, world (simple)&quot;</span>, <span class="kwrd">function</span>(){<br />    sayHello();<br />});</pre><p>そのため、Scriptish、Greasemonkeyどちらでも安全に動くようにするには、明示的に無名関数などを使った方が良いでしょう。</p><p>後、<a
href="http://subtech.g.hatena.ne.jp/mala/20101021/1287670869">外部コンテンツを読み込む系のGreasemonkeyやブラウザ拡張を作る際の注意事項</a>などの対策(Full Feedのものが行ってるタイプ)として、GM_xhrで取得したコンテンツを自前でフィルターするのをベタに書くと速度的な問題が発生したりするので、そういう時はScriptishにある<a
href="https://github.com/erikvold/scriptish/wiki/GM_safeHTMLParser">GM_safeHTMLParser</a> APIを使用するのが良いでしょう。<br
/>自前で書いても工夫すれば実用的な速度にはなるが、用意されているものを使うのが楽という意味で。</p><ul><li><a
href="http://d.hatena.ne.jp/Constellation/20101026/1288020124">http://d.hatena.ne.jp/Constellation/20101026/1288020124</a></li></ul><p>また、まだ入っていませんが、Scriptish 2.0で<a
href="https://github.com/erikvold/scriptish/wiki/GM_xpath">GM_xpath &#8211; GitHub</a>というXPathのAPIが入るようなので楽しみ。</p><ul><li><a
href="https://github.com/erikvold/scriptish/issues/45">#45: Support @xpath &#8211; Issues &#8211; erikvold/scriptish &#8211; GitHub</a></li></ul><p>Greasemonkeyにとどまる意義はあまり見つける事ができませんが、Scriptitshに移行する意義は見つける事ができるような感じの状態です。 <br
/>Scriptish作者の<a
href="http://erikvold.com/index.cfm">Erik Vold</a>さんはGreasemonkeyに対してさよならと言ってるので、これから少しずつ差が出てくるような気がします。</p><ul><li><a
href="http://groups.google.com/group/greasemonkey-dev/browse_thread/thread/3932e546be2cf626?hl=en&amp;pli=1">Farewell &#8211; greasemonkey-dev | Google Groups</a></li></ul><p>これからGreasemonkeyスクリプト実行環境がどうなるのかはまだ何ともいえませんが、とりあえず私はScriptishを中心に使っていきます。</p>]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0712/res2923/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>gistページにraw masterへのリンクを追加するGreasemonkey</title><link>http://efcl.info/2011/0615/res2874/</link> <comments>http://efcl.info/2011/0615/res2874/#comments</comments> <pubDate>Tue, 14 Jun 2011 16:45:23 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[gist]]></category> <category><![CDATA[Git]]></category> <category><![CDATA[URL]]></category><guid
isPermaLink="false">http://efcl.info/?p=2874</guid> <description><![CDATA[gistに置いたファイルの最新版を常に参照するraw masterなURLが最近変更されたり、昔使えた方法が使えなくなっています。 詳細は以下を参考に Gist の raw ファイルの URL が変わった: 「わ」の日記 [...]]]></description> <content:encoded><![CDATA[<p>gistに置いたファイルの最新版を常に参照するraw masterなURLが最近変更されたり、昔使えた方法が使えなくなっています。</p><p>詳細は以下を参考に</p><li><a
href="http://wa.cocolog-enshu.com/pseudodiary/2011/06/gist-raw-url-72.html">Gist の raw ファイルの URL が変わった: 「わ」の日記もどき</a></li><p>以前はURLに.txtとつければよかったので、特に何もしなくても不便はしなかったのですが、2011年6月15日現在はraw masterなURLへのURLにするにはちょっと書き換える量が多いのでGreasemonkeyを書きました。</p><p>gistのページのファイル名の横にraw master URLへのリンクを追加するGreasemonkeyです。 <br
/>Scriptishの場合は、リンクをクリックするだけでクリップボードにURLをコピーします。</p><p><code><a
href="http://efcl.info/wp-content/uploads/2011/06/2011-06-14-ss1.png"><img
style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="2011-06-14-ss1" border="0" alt="2011-06-14-ss1" src="http://efcl.info/wp-content/uploads/2011/06/2011-06-14-ss1_thumb.png" width="240" height="209" /></a></code></p><li><a
href="http://userscripts.org/scripts/show/104764">gist: raw master URL for Greasemonkey</a></li><p>この仕様変更により、Greasemonkeyで.txtでrequireしてたりするスクリプトは新しくインストールすると死んでいると思うので確認が必要になるかもしれません。</p>]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0615/res2874/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>JavaScriptでAmazonからASINを取得する方法など</title><link>http://efcl.info/2011/0605/res2817/</link> <comments>http://efcl.info/2011/0605/res2817/#comments</comments> <pubDate>Sun, 05 Jun 2011 01:24:13 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[Amazon]]></category> <category><![CDATA[ASIN]]></category><guid
isPermaLink="false">http://efcl.info/?p=2817</guid> <description><![CDATA[一つの方法はinput要素から取得する方法 document.getElementById("ASIN").value Amazonはページ中のhiddenなinput要素にASINを持たせてるのでこういう手が取れる。  [...]]]></description> <content:encoded><![CDATA[<h4>一つの方法はinput要素から取得する方法</h4><div
id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode">document.getElementById(<span class="str">"ASIN"</span>).value</pre></div><p>Amazonはページ中のhiddenなinput要素にASINを持たせてるのでこういう手が取れる。</p><div
id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode">&lt;input id=<span class="str">"ASIN"</span> type=<span class="str">"hidden"</span> value=<span class="str">"4253196519"</span> name=<span class="str">"ASIN"</span>&gt;</pre></div><p>ページの構造が変わったらダメだけど、結構昔からこの部分は変わってないので意外と安定しているかもしれない。 <br
/>amazon.comだと構造が違うものがあって、<a
href="http://www.amazon.com/gp/product/B004LRPGPC/ref=s9_simh_gw_p351_d0_i2?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-3&amp;pf_rd_r=1GAMW69P6270WWBTEW98&amp;pf_rd_t=101&amp;pf_rd_p=470938811&amp;pf_rd_i=507846">Amazon.com: Buried Prey eBook: John Sandford: Kindle Store</a>のようにKindle Storeだとページ構造が違ってID=ASINがない代わりに次のようなものがある。</p><div><pre id="codeSnippet" class="csharpcode">&lt;input type=<span class="str">"hidden"</span> value=<span class="str">"B004LRPGPC"</span> name=<span class="str">"ASIN.0"</span>&gt;</pre></div><div>なので、inputを取得する場合は次のような形になる。</div><div
id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode"><span class="kwrd">var</span> ASIN = document.getElementById(<span class="str">"ASIN"</span>) || document.getElementsByName(<span class="str">"ASIN.0"</span>)[0];</pre></div><h4>もう一つの方法はwindowオブジェクトのプロパティから取得する方法</h4><p>(2011年6月5日現在だと)</p><div
id="codeSnippetWrapper"><pre id="codeSnippet" class="csharpcode">window.sitbAsin;</pre></div><div>にASINの数値が入っている。(ちょっとできるタイミングが特殊な気がするから扱いにくいかも) <br
/>これはAmazon側のJavaScriptが生やしているので、ページのちょっとした構造の変化では変わらないと思うけど使うライブラリを変えたりJavaScriptが大きく変わると変更されることがある。 <br
/>以前はwindow.productTagsに入っていた。</div><ul><li><a
href="http://subtech.g.hatena.ne.jp/h2u/20090529/1243587848">Amazonの商品個別ページでASINを抜き出す &#8211; おれ ここ めも かきなぐる おまえ ここ よむ なぐる &#8211; subtech</a></li></ul><h4>最後はURLからASIN部分を切り出す方法</h4><p>URLにはASINが入ってるはずなので、ページに構造の変化には強いけど、少しパースが面倒なところがある。 <br
/>どのようなURLがあるかを把握する必要があるので、条件分けなども必要になる。 <br
/>まあASINのフォーマットは\w{10}と決まっているので、ある程度安定するのかもしれない。</p><p>ついでに、replaceStateを使ってリロードなしでAmazonのURLを/dp/ASINだけの短いURLにするGreasemonkey書いた。</p><ul><li><a
href="http://userscripts.org/scripts/show/104173">Amazon URL Cleaner for Greasemonkey</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0605/res2817/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Gihubのcanonicalを除去するGreasemonkey</title><link>http://efcl.info/2011/0601/res2788/</link> <comments>http://efcl.info/2011/0601/res2788/#comments</comments> <pubDate>Tue, 31 May 2011 16:04:43 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[github]]></category><guid
isPermaLink="false">http://efcl.info/?p=2788</guid> <description><![CDATA[最近、Gihubのレポジトリでlink rel=&#34;canonical&#34;が、treeのその時一番新しいものを示すようになっていて、そのためブックマークが分散したり、気持ち悪いURLを知らない間に登録して [...]]]></description> <content:encoded><![CDATA[<p>最近、Gihubのレポジトリでlink rel=&quot;canonical&quot;が、treeのその時一番新しいものを示すようになっていて、そのためブックマークが分散したり、気持ち悪いURLを知らない間に登録していたりします。</p><p>なので、link rel=&quot;canonical&quot;のタグを削除するGreasemonkeyを書いてみました。</p><ul><li><a
href="http://userscripts.org/scripts/show/103900">GitHub: remove canonical for Greasemonkey</a></li></ul><p>何でこんな仕様なのか意味不明なので、いずれは元に戻って欲しいです。(このGreasemonkeyは一応、仕様が変わったかどうかかもチェックしてます)</p><p>Githubはhisotyオブジェクトを使って<a
href="http://d.hatena.ne.jp/zentoo/20101221/1292953257">動的にURLを書き換えてる</a>のは知ってる人多いと思いますが、link rel=&quot;canonicalもそれにあわせて動的に書き換えています。 <br
/>$.attrで書き換えてるだけなので、link要素を削除してもエラーは特にでないようになっています。</p><p>link rel=&quot;canonicalはあった方がうれしいと思ってたけど、あると困るケースに遭遇したのは初めて。</p>]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0601/res2788/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>ニコニコ動画の検索履歴を保存するGreasemonkey</title><link>http://efcl.info/2011/0506/res2733/</link> <comments>http://efcl.info/2011/0506/res2733/#comments</comments> <pubDate>Fri, 06 May 2011 11:21:29 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[ニコニコ動画]]></category> <category><![CDATA[検索]]></category><guid
isPermaLink="false">http://efcl.info/?p=2733</guid> <description><![CDATA[今のニコニコだと好きな動画を探すときに、特定の検索をして探すって感じの場合が多くなってきた気がするので、検索履歴を保存して表示できるGreasemonkeyを書いてみました。 Nico Search History fo [...]]]></description> <content:encoded><![CDATA[<p>今のニコニコだと好きな動画を探すときに、特定の検索をして探すって感じの場合が多くなってきた気がするので、検索履歴を保存して表示できるGreasemonkeyを書いてみました。</p><ul><li><a
href="http://userscripts.org/scripts/show/102371">Nico Search History for Greasemonkey</a></li></ul><p>検索画面の右上の方にボタンが出るようになるので、それをクリックすると検索した履歴が表示されます。 <br
/>検索履歴は検索キーだけではなくてsort方法によっても別々に保存されます。</p><p><a
href="http://efcl.info/wp-content/uploads/2011/05/image8.png"><img
style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/05/image_thumb8.png" border="0" alt="image" width="145" height="186" /></a><a
href="http://efcl.info/wp-content/uploads/2011/05/image9.png"><img
style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://efcl.info/wp-content/uploads/2011/05/image_thumb9.png" border="0" alt="image" width="200" height="240" /></a></p><p>また、検索キーの横にある☆マークをクリックすることで、その検索キーを常に上の方に表示して、自動的に削除されないようにします。(お気に入り機能) <br
/>お気に入りではない検索キーは100個ぐらいで自動的に削除されます。</p><p><strong>コード内容</strong></p><p>これを書き始めたとき<a
href="http://efcl.info/adiary/JavaScriptPatterns/Chapter5ObjectCreationPatterns#k93p5">Sandbox Pattern</a>を試してみたくて書いてたので、あんまり見ない書き方をしてると思う。 <br
/>それぞれ必要な部品をモジュールhistory,templeteとして定義して、必要な時に <br
/>Sandbox(&#8220;history&#8221;, function(box) { … }) という感じで使うというような書き方になってる。</p><ul><li><a
href="https://github.com/azu/Greasemonkey/tree/master/nico_search_history">nico_search_history at master from azu/Greasemonkey &#8211; GitHub</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0506/res2733/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>トラッキングパラメーターなど邪魔なものをURLが削除するGreasemonkey</title><link>http://efcl.info/2011/0405/res2488/</link> <comments>http://efcl.info/2011/0405/res2488/#comments</comments> <pubDate>Tue, 05 Apr 2011 10:17:15 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[Firefox4]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[Scriptish]]></category><guid
isPermaLink="false">http://efcl.info/?p=2488</guid> <description><![CDATA[ParamCleanerというURLからutm_*など不要なパラメーターを除去するGreasemonkeyを書きました。すでに同じ目的のGreasemonkeyやアドオンなどがありますが、 UrlCleaner for  [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://userscripts.org/scripts/show/100611">ParamCleaner</a>というURLからutm_*など不要なパラメーターを除去するGreasemonkeyを書きました。<br
/>すでに同じ目的のGreasemonkeyやアドオンなどがありますが、</p><ul><li><a
href="http://userscripts.org/scripts/show/70851">UrlCleaner for Greasemonkey</a></li><li><a
href="http://sangoukan.xrea.jp/cgi-bin/tDiary/?date=20091118">FeedBurnerのトラッキングパラメータらしきものを削るGreasemonkey &#8211; ariyasacca(2009-11-18)</a></li><li><a
href="http://d.hatena.ne.jp/swdyh/20100323/1269305458">URLのトラッキング用パラメータを無視するFirefox拡張 Through utm_ &#8211; SWDYH</a></li></ul><p>history.replaceStateを使う事で他のものに比べて簡潔な処理でURLからトラッキングパラメーターなどを消せます。<br
/>またhistory.replaceStateを使ってるのでFirefox4以上向けで(一応Firefox3でも動くようにしてある)、Scriptish向けに最適化してあるので、できればScriptishで使った方がいいです(Greasemonkeyでも動きます)</p><ul><li><a
href="http://efcl.info/2011/0326/res2411/">GreasemonkeyからScriptishへ環境設定を移行する | Web scratch</a></li></ul><p><strong><a
href="https://developer.mozilla.org/en/DOM/window.history">history.replaceState(data, title [, url])</a>の使い方</strong></p><p>historyオブジェクトについては<a
href="http://webtech-walker.com/archive/2011/01/21123625.html">github</a>などで話題になったので知ってる人も多いと思いますが、pushStateはブラウザの履歴に新規エントリを追加するAPIで、replaceStateは現在のエントリを入れ替えるAPIです。<br
/>引数は<a
href="https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState%28%29.c2.a0method">pushState()</a>と同じで、</p><pre>history.replaceState(stateプロパティに入る値, 状態識別用のタイトル, &#91;現在の状態に対応するURL&#93;);</pre><p>という引数をとります。<br
/>第三引数を指定してSame OriginならURLバーの表示を書き換える事ができるので、以下のように実際に移動しなくても表示が書き換わります。</p><pre class="brush:javascript;">// http://example.com/ で実行
history.replaceState(null, "", "/hey");
// =&#62; http://example.com/hey とURLバーの表示が変わる</pre><ul><li><a
href="http://d.hatena.ne.jp/javascripter/20100404/1270411268">history.pushState、history.replaceState &#8211; 素人がプログラミングを勉強するブログ</a></li><li><a
href="https://dev.mozilla.jp/hacksmozillaorg/history-api-changes-in-firefox-4/">Firefox 4 での History API の変更 « Mozilla Developer Street (modest)</a></li></ul><p>これを使って、今回はトラッキングパラメーターが存在するURL(<a
href="http://wedata.net/databases/UrlCleaner/items">アイテム &#8211; データベース: UrlCleaner &#8211; wedata</a>で管理)にアクセスしたとき、トラッキングパラメーターを除去したURLへhistory.replaceStateを使って書き換えているので他のGreasemonkeyのようなリロードがなかったり、アドオンのように通信を監視する手間が省けます。(以前同じ名前で<a
href="https://github.com/azu/ParamCleaner">アドオン</a>を作ってたけど重すぎた)</p><p><a
href="http://userscripts.org/scripts/show/70851">UrlCleaner</a>と同じWedataで管理されたものを勝手に使ってるので、処理自体は互換性があるようにしています(一部拡張してるけど) 気になったものがあったらSITEINFOを書いて、<a
href="http://wedata.net/databases/UrlCleaner/items">UrlCleaner &#8211; wedata</a>に登録するとよいです。</p><dl><dt><strong>ParamCleaner for Greasemonkeyi</strong></dt><dd><a
title="ParamCleaner for Greasemonkey" href="http://userscripts.org/scripts/show/100611">http://userscripts.org/scripts/show/100611</a></dd></dl>]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0405/res2488/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>GreasemonkeyからScriptishへ環境設定を移行する</title><link>http://efcl.info/2011/0326/res2411/</link> <comments>http://efcl.info/2011/0326/res2411/#comments</comments> <pubDate>Sat, 26 Mar 2011 12:18:29 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[NILScript]]></category> <category><![CDATA[Scriptish]]></category> <category><![CDATA[設定]]></category><guid
isPermaLink="false">http://efcl.info/?p=2411</guid> <description><![CDATA[GreasemonkeyからScriptishへの環境移行メモです。ScriptishについてはScriptish wiki!やScriptish （Greasemonkey フォーク版） キタ━━━ヽ(ﾟ∀ﾟ)ﾉ━ &#038; [...]]]></description> <content:encoded><![CDATA[<p>Greasemonkeyから<a
href="https://addons.mozilla.org/ja/firefox/addon/scriptish/">Scriptish</a>への環境移行メモです。<br
/><a
href="https://addons.mozilla.org/ja/firefox/addon/scriptish/">Scriptish</a>については<a
href="https://github.com/erikvold/scriptish/wiki">Scriptish wiki!</a>や<a
href="http://d.hatena.ne.jp/teramako/20100930/p1">Scriptish （Greasemonkey フォーク版） キタ━━━ヽ(ﾟ∀ﾟ)ﾉ━ &#8211; hogehoge @teramako</a>を見るとよいです。<br
/>簡単にまとめると、使えるAPIが増えた(開発者的にうれしい)、管理画面の設定項目がGreasemonkeyより豊富(Greasemonkey0.9で削られたinclude,excludeの設定もGUIからできます)、UIが日本語化されてる(ちょっと分かりづらい訳だけど…)<br
/>Greasemonkeyからフォークしてるので、Greasemonkey向けに書かれたスクリプト自体の互換性は問題ないです。<br
/>逆にScriptishの新APIを使ったものはGreasemonkeyでは動かない事があるぐらいだと思います。</p><h3>環境の移行方法</h3><p><a
href="https://github.com/erikvold/scriptish/wiki/How-To%3A--Manually-transfer-user-scripts-from-Greasemonkey-to-Scriptish">How To: Manually transfer user scripts from Greasemonkey to Scriptish &#8211; GitHub</a><br
/>に手動での環境移行手順が書かれています。<br
/>簡単に書き出してみると</p><ol><li>スクリプトフォルダ名はgm_scriptsからscriptish_scriptsになった<br
/>(フォルダの中のconfig.xmlや配置自体は同じなのでフォルダ名だけ変更すればOK)</li><li><code>prefs.jsへスクリプトの設定の保存書式が変更された<br
/>これが移行時にネックになってる大きな変更で、GM_setValueなどGreasemonkeyスクリプトから値を保存するとpref.jsに書き込まれますが、そのときの書式が変わっているためGreasemonkey時に保存した値が引き継がれません。<br
/>一応手動での書き換え手順も書かれています。<br
/>greasemonkey.scriptvals から extensions.scriptish.scriptvals へ置換する<br
/>スクリプト名とネームスペースの間の/を@に置き換える</code></li></ol><p>GreasemonkeyとScriptishのpref.jsの書式の違いを見てみると</p><pre>user_pref("greasemonkey.scriptvals.http://efcl.info//Post Now browsing to Twitter.GM_config", "{"defaultTag":"見てる:","isSelection":true,"removeUtm":true,"avoidLinktoMeta":true,"PostWithCtrl":true,"ShortCutKey":"C-Delete","ShortURL":"bit.ly","bitlyUserName":"remiko","bitlyAPIKey":"R_fa2240c646c07b2091c6bc6d109089ef","googlAPIKey":"AIzaSyDYer57o2GyHX_xylyaa4iGIyyjd81kGxc"}");</pre><pre>// =&#62;</pre><pre>user_pref("extensions.scriptish.scriptvals.PostNowbrowsingtoTwitter@httpefcl.info.GM_config",  "{"defaultTag":"Now  browsing:","isSelection":true,"removeUtm":true,"avoidLinktoMeta":true,"PostWithCtrl":true,"ShortCutKey":"C-Delete","ShortURL":"bit.ly","bitlyUserName":"remiko","bitlyAPIKey":"R_fa2240c646c07b2091c6bc6d109089ef","googlAPIKey":""}");</pre><p>という風にpref.jsに保存される書式が変化しています。<br
/>ネームスペースとスクリプト名の位置も逆転してまたスペースなど除去されてたりします。<br
/>手動でやっても結構手間がかかるので、大事なものだけやって、後は普通に設定し直した方が楽だと思います。<br
/>一応、自動的にできるように<a
href="https://github.com/azu/NILScript/wiki">NILScrip</a>tで<a
href="https://github.com/azu/NILScript/tree/master/utilityTools/Greasemonkey">GreasemonkeyToScriptish.ng</a>というものを作ってみました。</p><pre>    pref.jsに保存された値をGreasemonkeyからScriptishの書式へ変更する
    pref.jsと同じディレクトリにこのngスクリプトを置いて実行するとnew_pref.jsが生成される。</pre><p>実行する前にpref.jsのバックアップをとっておいてから、pref.jsと同じディレクトリにおいて実行すると、それぞれの値を書き換えたnew_pref.jsというのができるので、後はpref.jsのコピーし直すかpref.jsにリネームして使うなどしてください。<br
/>不完全かもしれないので、保証はできません。</p><ul><li><a
href="https://github.com/azu/NILScript/blob/master/utilityTools/Greasemonkey/GreasemonkeyToScriptish.ng">utilityTools/Greasemonkey/GreasemonkeyToScriptish.ng at master from azu/NILScript &#8211; GitHub</a></li></ul><h3>Dropboxフォルダでスクリプト管理</h3><p>これを期にGreasemonkeyスクリプトのファイル自体をDropboxで共有しようと思ったので、移行手順の1の時にDropboxにgm_scriptsフォルダを移して、プロファイルフォルダにscriptish_scriptsへのシンボリックリンクを作りました。<br
/>Windowsだとmklinkとかコマンドラインがややこしいので、<a
href="http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html">Link Shell Extension</a>を使ってシンボリックリンクを張りました。</p><ul><li><a
href="http://sukima-manual.seesaa.net/article/113336296.html">隙間マニュアル: Dropboxで任意のフォルダやファイルを同期する方法</a></li><li><a
href="http://www.forest.impress.co.jp/article/2008/12/11/linkshellext.html">窓の杜 &#8211; 【REVIEW】エクスプローラ上で手軽にシンボリックリンクを作成「Link Shell Extension」</a></li></ul><p>このソフトを使えば普通のショートカットみたいにシンボリックリンクが貼れるので簡単。<br
/>(シンボリックリンクのフォルダ名をちゃんとscriptish_scriptsにするのを忘れない)</p><p>追記:起動時に変更がたくさんある(Dropbox共有してると起きやすい)とnotificationが大量に通知されて使い物にならないので、<br
/><a
href="https://github.com/erikvold/scriptish/wiki/Manual%3A-Preferences">Manual: Preferences &#8211; GitHub</a>を参考にabout:configのextensions.scriptish.enableScriptRefreshing を false にして変更の監視をオフにしました。副作用として、スクリプトのメタブロックを書き換えても反映されなくなると思います。<br
/>(Greasemonkey0.8あたりと同じ動作になると思う)</p><p>これでGreasemonkeyからScriptishへの移行手順は終わりです。<br
/>Firefox4への移行と同時にGreasemonkeyもScriptishへ移行を行えば、無駄なスクリプトを削除できたり汚れたpref.jsも掃除できるので同時期にやると良いかと思います。(<a
title="使ってないGreasemonkeyスクリプトを削除・整理するNILScript" href="http://efcl.info/2010/1021/res2008/">使ってないGreasemonkeyスクリプトを削除するngスクリプト</a>も以前書きました)<br
/>まだどっちのアドオンが優れてるのかはよく分かってないので、使ってるうちに何らかの違いが分かるんではないかと。<br
/>(Scriptish向けのスクリプトってなんて呼べば良いんだろ?)</p> ]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0326/res2411/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Firefox4でcan&#8217;t wrap XML objectsというエラーが出る件について</title><link>http://efcl.info/2011/0326/res2406/</link> <comments>http://efcl.info/2011/0326/res2406/#comments</comments> <pubDate>Sat, 26 Mar 2011 07:59:11 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[css]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[Firefox4]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[エラー]]></category><guid
isPermaLink="false">http://efcl.info/?p=2406</guid> <description><![CDATA[Firefox4にしてから主にGreasemonkeyのGM_addStyleメソッドで TypeError: can&#8217;t wrap XML objectsというエラーが出たりすることがあります。これはBug [...]]]></description> <content:encoded><![CDATA[<p>Firefox4にしてから主にGreasemonkeyのGM_addStyleメソッドで</p><p><em>TypeError: can&#8217;t wrap XML objects</em><em></em><br
/><br
/>というエラーが出たりすることがあります。<br
/>これは<a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=609143">Bug 609143 – E4X XML objects cannot be passed to sandbox</a>のsandbox内でのE4X(XML)の挙動が変わった(意図的に)のが原因らしいです。(あまり詳しくないので&#8230;)</p><pre class="brush:javascript;">GM_addStyle(&lt;&gt;&lt;![CDATA[ 
/* 適当なCSSのコード*/
    .clearfix:after {
        content: ".";  /* 新しい要素を作る */
        display: block;  /* ブロックレベル要素に */
        clear: both;
        height: 0;
        visibility: hidden;/*表示はしない*/
    }
 ]]&gt;&lt;/&gt;)</pre><p>のような感じでE4X(XML)を直接GM_addStyleに渡しているときなどに起きています。<br
/>これを回避するためには、E4X(XML)を明示的に文字列化して渡せばよい見たいです。</p><pre class="brush:javascript;">GM_addStyle(String(&lt;&gt;&lt;![CDATA[
/* CSSコード */
]]&gt;&lt;/&gt;));</pre><p>のようにString(E4X)するか、E4X全体をtoString()、&#8221;"+E4X のような感じで文字列化すればいい。<br
/>もしくはGreasemonkeyにはメタ情報に// @resource CSS example.css という感じで、CSSファイルをロードできるので、そのファイルをGM_addStyle(GM_getResourceText(&#8216;CSS&#8217;));して使うなどでもいいと思います。</p><ul><li><a
href="http://d.hatena.ne.jp/janus_wel/20090111/1231670076">@require, @resource of Greasemonkey &#8211; KBDAHOLIC &#8211; やぬすさんとこ</a></li></ul><p>もしくは下のようにGM_addStyleを書き換えてしまう事でも回避できそうです。(あんまり推奨しないけど)</p><pre class="brush:javascript;">function GM_addStyle(css) {
    if (!GM_addStyle.style) {
        var head = document.getElementsByTagName("head")[0] ||
                document.documentElement;
        if (!head) {
            return;
        }
        GM_addStyle.style = document.createElement('style');
        GM_addStyle.style.type = 'text/css';
        head.insertBefore(GM_addStyle.style, head.firstChild);
    }
    GM_addStyle.style.appendChild(document.createTextNode(css) + '\n');
}</pre><p>書き換えの参考</p><ul><li><a
href="http://d.hatena.ne.jp/os0x/20090123/1232734667">GM_addStyleの実装と最適化 &#8211; 0xFF</a></li><li><a
href="http://paulirish.com/2011/surefire-dom-element-insertion/">Surefire DOM Element insertion « Paul Irish</a></li></ul><p><a
href="https://gist.github.com/803115">Constellation&#8217;s gist: 803115 — Gist</a>のようにTomblooパッチでGM_addStyleの挙動を変えてしまおうと思ったけどよく分からなくなってあきらめました。</p><p>参考</p><ul><li><a
href="http://d.hatena.ne.jp/wlt/20110106/1294306315">Firefox 4.0b8～b9 でLDRize (Minibufferの修正) &#8211; wltの日記</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0326/res2406/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Google検索でのuserContent.cssの設定やGreasemonkeyなど</title><link>http://efcl.info/2011/0320/res2380/</link> <comments>http://efcl.info/2011/0320/res2380/#comments</comments> <pubDate>Sat, 19 Mar 2011 15:21:10 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Firefox]]></category> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[AutoPagerize]]></category> <category><![CDATA[css]]></category> <category><![CDATA[google]]></category> <category><![CDATA[検索]]></category><guid
isPermaLink="false">http://efcl.info/?p=2380</guid> <description><![CDATA[Google検索は最も使うサービスの一つだと思うので、できる限り快適にしたいです。いろいろいじってたのがやっと落ち着いたので設定のメモです。 まずはGreasemonkeyから Twitter search(ja) re [...]]]></description> <content:encoded><![CDATA[<p>Google検索は最も使うサービスの一つだと思うので、できる限り快適にしたいです。いろいろいじってたのがやっと落ち着いたので設定のメモです。</p><p>まずはGreasemonkeyから</p><ul><li><a
title="Twitter search(ja) result on Google for Greasemonkey" href="http://userscripts.org/scripts/show/65540">Twitter search(ja) result on Google for Greasemonkey</a><br
/>検索結果にTwitter検索の結果を表示する</li><li><a
title="En Google modified by Gulfweed" href="http://gulfweed.starlancer.org/?En%20Google">En Google modified by Gulfweed</a><br
/>検索中に言語の切り替えを簡単に行える</li><li><a
title="Remove Google Redirection for Greasemonkey" href="http://userscripts.org/scripts/show/98394">Remove Google Redirection for Greasemonkey</a><br
/>各ページへのリンクにGoogleのリダイレクトを挟まないようする</li></ul><p>と、このぐらいで思ったより、Greasemonkeyは入れてない感じします。<br
/>Google検索自体が結構高機能なので、そこまで機能を付け加える必要が無いのかもしれないです。(期間指定をもっと簡単にやりたいけど)<br
/>後はアドオンで<a
title="Google Date :: Add-ons for Firefox" href="https://addons.mozilla.org/ja/firefox/addon/google-date/">Google Date :: Add-ons for Firefox</a>を入れているぐらいです。<br
/>入れている理由は<a
title="サイトの最終更新日をステータスバーに表示するアドオン「Google Date」" href="http://efcl.info/2011/0218/res2272/">最終更新日を知るため</a>なのでちょっと関係ないかもしれないです。</p><p>次にuserContent.cssの設定。<br
/><a
title="Stylish" href="https://addons.mozilla.org/ja/firefox/addon/stylish/">Stylish</a>は入れてないので直接userContent.cssに書いています。(デバッグには<a
title="userChrome.jsでメニュー拡張を追加できる「userMenu.js」" href="http://efcl.info/2010/0512/res1692/">userMenu.uc.js</a>のCSSリロードが便利)</p><pre class="brush:css;">/* Google検索ページ
+結果欄の幅拡張
+検索バーを固定
+サイトの背景色を奇数で色分
+広告は犠牲になった
*/
@-moz-document url-prefix("http://www.google.co.jp/search"),
                 url-prefix("http://www.google.com/search"){
    /* 「もっと見る」を押さなくても、最初から全部表示 */
    .nojsb {
        display: block !important;
    }
    #tads{
        display: none !important;
    }
    #showmodes {
        display: none !important;
    }
    #mbEnd{
        display:none !important;
    }
    /* fixedSearchbar */
    #nr_container {
        margin-top: 115px;
    }
    #sfcnt {
        -moz-box-shadow:0 1px 5px #000000;
        box-shadow:0 1px 5px #000000;
        left:0;
        padding:18px 0;
        top:25px;
        width:100%;
        z-index:10;
    }
    #gog {
        left:0;
        top: 0;
        width:100%;
        z-index:11;
    }
    #gog, #sfcnt, #subform_ctrl{
        background:none repeat scroll 0 0 rgba(255, 255, 255, 0.9)!important;
        position:fixed;
    }
    #sfcnt {
        height:70px !important;
        padding-top:0 !important;
    }
    #subform_ctrl {
      text-align:right;
      z-index: 10;
      right: 0;
      top: 88px;
      min-height: 0;
      background:none repeat scroll 0 0 transparent!important;
    }
    #guser, #gbar{
          padding: 1px 0;
    }
    #gbar nobr, #guser nobr {
        line-height: 22px;
    }
    /* oddには色をつける */
    li.g:nth-child(odd){
        background:#F7F7F7;
    }
    /* 説明文を横に延長 */
    .g{
        min-width:800px;
        padding:5px!important;
        -moz-border-radius : 5px;
        border-radius : 5px;
    }
    .s {
        min-width: 800px !important;
    }

    /* RealTimeの場合横幅に必要 */
    #center_col{
        min-width:820px!important;
    }
    /*右側のbox*/
    #rtro{
        width: 800px!important;
    }
    /* 普段は隠しておいて、マウスオーバーで表示させる */
    #rhs{
        -moz-box-shadow:-3px 3px 3px #000000;
        white-space: nowrap;
        background:#fff!important;
        right: 0!important;
        top: 0!important;
        width: 15px!important;
        overflow:hidden;
    }
    #rhs:hover{
        background:#fff!important;
        right: 0!important;
        top: 0!important;
        width: 800px!important;
    }
}</pre><p><a
title="Googleの設定 — Gist" href="https://gist.github.com/877459">Googleの設定 — Gist</a></p><p>今はこんな感じで、結果欄の横幅拡張、検索バーを固定、サイトの背景色を奇数で色分けなどを行っています。<br
/>スクリーンショットで見ると以下のような感じになります。</p><p><a
href="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-19-2.png"><img
class="alignnone size-medium wp-image-2384" title="ss-2011-03-19-2" src="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-19-2-300x205.png" alt="" width="300" height="205" /></a></p><p><a
href="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-19-5.png"><img
class="alignnone size-medium wp-image-2381" title="ss-2011-03-19-5" src="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-19-5-300x207.png" alt="" width="300" height="207" /></a></p><p><a
href="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-19-3.png"><img
class="alignnone size-medium wp-image-2383" title="ss-2011-03-19-3" src="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-19-3-300x205.png" alt="" width="300" height="205" /></a></p><p><a
href="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-19-4.png"><img
class="alignnone size-medium wp-image-2382" title="ss-2011-03-19-4" src="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-19-4-300x206.png" alt="" width="300" height="206" /></a></p><p>また、先ほどGoogleのTwitter検索である&#8221;Google Realtime Search&#8221;のSITEINFOをwedataに書いておいたのでかなり快適になりました。<br
/>(各種AutopagerizeでSITEINFOの更新を行えば適応されると思います)</p><ul><li><a
title="アイテム: Google Realtime Search - データベース: AutoPagerize - wedata" href="http://wedata.net/items/48597">アイテム: Google Realtime Search &#8211; データベース: AutoPagerize &#8211; wedata</a></li></ul><p>思ったより地味ですが、こんな感じで使っています。<br
/><a
title="Google++ for Greasemonkey" href="http://userscripts.org/scripts/show/59333">Google++ for Greasemonkey</a>を結構参考にしました。</p> ]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0320/res2380/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>ATNDをもっと便利にするGreasemonkey「Better ATND」</title><link>http://efcl.info/2011/0306/res2353/</link> <comments>http://efcl.info/2011/0306/res2353/#comments</comments> <pubDate>Sun, 06 Mar 2011 12:53:16 +0000</pubDate> <dc:creator>azu</dc:creator> <category><![CDATA[Greasemonkey]]></category> <category><![CDATA[google]]></category> <category><![CDATA[イベント]]></category><guid
isPermaLink="false">http://efcl.info/?p=2353</guid> <description><![CDATA[ATNDのイベントページに最寄り駅情報の表示やGoogleカレンダーの登録ボタンを追加などをするGreasemonkeyスクリプトを書いてみました。 元ネタはATND++というものがあったのですが、メンテされてなかったの [...]]]></description> <content:encoded><![CDATA[<p>ATNDのイベントページに最寄り駅情報の表示やGoogleカレンダーの登録ボタンを追加などをするGreasemonkeyスクリプトを書いてみました。 元ネタは<a
title="ATND++" href="http://www.kugimiyabyou.net/2009/10/23/atnd%E6%8B%A1%E5%BC%B5%E3%83%84%E3%83%BC%E3%83%ABatnd-ver-10%E3%82%92%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9/">ATND++</a>というものがあったのですが、メンテされてなかったので自分で修正(<a
title="ATND++を適当に修正したもの — Gist" href="https://gist.github.com/784085">ATND++を適当に修正したもの — Gist</a>)して使っていたのですが、そのままだとメンテしにくかったので最初から書き直してみました。</p><ul><li><a
title="Better ATND for Greasemonkey" href="http://userscripts.org/scripts/show/98456">Better ATND for Greasemonkey</a></li></ul><p>機能としては以下のような機能が付いています。(2011-03-06)</p><ul><li>最寄り駅情報の表示</li><li>最寄り駅をまとめた地図画像の表示</li><li>Google Calendarへの登録ボタンの追加</li></ul><p>Googleカレンダーへの登録時には、イベントページから場所や概要などの情報も自動で入力します(説明文は長すぎるとエラーになるので300文字ぐらいで切っています)</p><p><br
/><strong>画像でみる機能</strong></p><div
id="attachment_2357" class="wp-caption aligncenter" style="width: 310px"><a
href="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-06-1.png"><img
class="size-medium wp-image-2357" title="ss-2011-03-06-1" src="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-06-1-300x288.png" alt="" width="300" height="288" /></a><p
class="wp-caption-text">最寄り駅情報</p></div><div
id="attachment_2356" class="wp-caption aligncenter" style="width: 310px"><a
href="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-06-2.png"><img
class="size-medium wp-image-2356" title="ss-2011-03-06-2" src="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-06-2-300x82.png" alt="" width="300" height="82" /></a><p
class="wp-caption-text">Google Calendarの登録ボタン</p></div><div
id="attachment_2355" class="wp-caption aligncenter" style="width: 281px"><a
href="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-06-3.png"><img
class="size-medium wp-image-2355" title="ss-2011-03-06-3" src="http://efcl.info/wp-content/uploads/2011/03/ss-2011-03-06-3-271x300.png" alt="" width="271" height="300" /></a><p
class="wp-caption-text">Google Calendarの登録ページ</p></div><p>作った(使ってた)理由としては場所を言われてもピンとこない場合が多いのと、電車が主な移動手段であることが多いので、会場がどの駅に近いのかがわかると便利です。また参加してなくてもUstや後で資料を出してくれるイベントも多いので、忘れないように気になったイベントはGoogle Calendarに登録していました。最初はブックマークレット(<a
title="ATNDのイベント画面にGoogleカレンダーへ予定を登録するボタンを追加するブックマークレット - 電脳戦士ハラキリ -SE道とは死ぬ事と見つけたり-" href="http://d.hatena.ne.jp/hagino_3000/20091216/1260894102">ATNDのイベント画面にGoogleカレンダーへ予定を登録するボタンを追加するブックマークレット &#8211; 電脳戦士ハラキリ -SE道とは死ぬ事と見つけたり-</a>)を使ってたのですが、少し面倒になったのでGreasemonkeyにその機能を入れました。<br
/>ATNDのリニューアルでicsリンクがでて、Google Calendarで読み込む事ができるのですが、icsを読み込むと&#8221;他のカレンダー&#8221;が増えるのであんまり好みじゃないので今まで通り登録ボタンにしました。</p><p>APIは以下の2つを使っています</p><ul><li><a
title="ATND API リファレンス" href="http://api.atnd.org/">ATND API リファレンス</a></li><li><a
title="SimpleAPI vol.2 - 最寄り駅Webサービス &amp; 最寄り駅モバイル地図" href="http://map.simpleapi.net/">SimpleAPI vol.2 &#8211; 最寄り駅Webサービス &amp; 最寄り駅モバイル地図</a></li></ul><p>両方ともjsonなどいろいろな形式ではいたりしてくれるので、手軽に使えて便利です。</p><dl><dt><strong>Better ATND for Greasemonkey</strong></dt><dd><a
title="Better ATND for Greasemonkey" href="http://userscripts.org/scripts/show/98456">http://userscripts.org/scripts/show/98456</a></dd></dl><dl><dt><strong>better_atnd at master from azu/Greasemonkey &#8211; GitHub</strong></dt><dd><a
title="better_atnd at master from azu/Greasemonkey - GitHub" href="https://github.com/azu/Greasemonkey/tree/master/better_atnd">https://github.com/azu/Greasemonkey/tree/master/better_atnd</a></dd></dl>]]></content:encoded> <wfw:commentRss>http://efcl.info/2011/0306/res2353/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/46 queries in 0.096 seconds using disk: basic
Object Caching 770/877 objects using disk: basic

Served from: efcl.info @ 2012-02-05 04:14:58 -->
