<?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; ブックマークレット</title>
	<atom:link href="http://efcl.info/tag/%e3%83%96%e3%83%83%e3%82%af%e3%83%9e%e3%83%bc%e3%82%af%e3%83%ac%e3%83%83%e3%83%88/feed/" rel="self" type="application/rss+xml" />
	<link>http://efcl.info</link>
	<description>フリーソフトやFirefoxなどについて、web全般なサイト</description>
	<lastBuildDate>Wed, 08 Sep 2010 05:51:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ブックマークレットの登録を手助けするブックマークレット</title>
		<link>http://efcl.info/2010/0115/res1537/</link>
		<comments>http://efcl.info/2010/0115/res1537/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 10:14:45 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[ブックマークレット]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=1537</guid>
		<description><![CDATA[タイトルままですが、ブックマークレットがjavascript:~~~みたいにべた書きしてある場合、ブックマークレットとして登録するのが面倒なので、
 それを登録するためのリンク(よくあるツールバーへD&#38;Dするため [...]]]></description>
			<content:encoded><![CDATA[<p>タイトルままですが、ブックマークレットがjavascript:~~~みたいにべた書きしてある場合、ブックマークレットとして登録するのが面倒なので、<br />
 それを登録するためのリンク(よくあるツールバーへD&amp;Dするためのリンク)を作成するブックマークレット。</p>
<ul>
<li><a href="javascript:(function(){function insertAfter(newNode,node){return node.parentNode.insertBefore(newNode,node.nextSibling);}var selection=getSelection();if(!selection.rangeCount)return false;var range=selection.getRangeAt(0);var endNode=range.endContainer;var a=document.createElement(&quot;a&quot;);a.href=range;var str=document.createTextNode(prompt(&quot;ブックマークレットタイトル&quot;));a.appendChild(str);insertAfter(a,endNode);})();">ブックマークレット登録補助</a></li>
</ul>
<h3>使い方</h3>
<dl>
<dt><strong>英語のニュースを読みやすくするブックマークレット &#8211; by edvakf in hatena</strong></dt>
<dd><a title="英語のニュースを読みやすくするブックマークレット - by edvakf in hatena" href="http://d.hatena.ne.jp/edvakf/20100115/1263539415">http://d.hatena.ne.jp/edvakf/20100115/1263539415</a></dd>
</dl>
<p>上を例にしてみると</p>
<p><a href="http://efcl.info/wp-content/uploads/2010/01/sshot-2010-01-15-1.png"><img class="alignnone size-medium wp-image-1538" title="sshot-2010-01-15-[1]" src="http://efcl.info/wp-content/uploads/2010/01/sshot-2010-01-15-1-300x66.png" alt="ブックマークレットのテキストを選択" width="300" height="66" /></a></p>
<ol>
<li>べた書きされたブックマークレットのコード部分だけを選択する</li>
<li>ブックマークレット登録補助ブックマークレットを実行</li>
<li>プロンプトが出るので、登録するブックマークレットのタイトルをいれる(英語のニュースを読みやすくするとか)</li>
<li>選択範囲のすぐしたにいれたタイトルでリンクができるので、それをブックマークレットツールバーへD&amp;Dする。</li>
</ol>
<p>以上</p>
<pre class="brush:javascript;">
(function(){
function insertAfter(newNode, node) {
        return node.parentNode.insertBefore(newNode, node.nextSibling);
}
var selection = getSelection();
if (!selection.rangeCount) return false;
var range = selection.getRangeAt(0);
var endNode = range.endContainer;
var a =document.createElement("a");
a.href = range;
var str = document.createTextNode(prompt("ブックマークレットタイトル"));
a.appendChild(str);
insertAfter(a,endNode);
})();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2010/0115/res1537/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Greasemonkeyでサイト既存の関数を上書きする</title>
		<link>http://efcl.info/2009/1122/res1483/</link>
		<comments>http://efcl.info/2009/1122/res1483/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 05:11:09 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[Greasemonkey]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[ブックマークレット]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=1483</guid>
		<description><![CDATA[サイトに新たに機能を付け加えるのではなくて、元々サイトに存在してる関数を少しだけいじってやった方が簡単な場合があります。
 そういうときにGreasemonkeyからサイトに元々ある既存関数を上書きする方法です。

Sm [...]]]></description>
			<content:encoded><![CDATA[<p>サイトに新たに機能を付け加えるのではなくて、元々サイトに存在してる関数を少しだけいじってやった方が簡単な場合があります。<br />
 そういうときにGreasemonkeyからサイトに元々ある既存関数を上書きする方法です。</p>
<dl>
<dt><strong>SmartLDR更新 &#8211; 素人がプログラミングを勉強するブログ</strong></dt>
<dd><a title="SmartLDR更新 - 素人がプログラミングを勉強するブログ" href="http://d.hatena.ne.jp/javascripter/20090324/1237903880">http://d.hatena.ne.jp/javascripter/20090324/1237903880</a></dd>
</dl>
<p>ここで紹介されているlocation.hrefとjavascript:プロトコルを使ったハックを使うと比較的簡単に関数の上書きができます。<br />
 例えばmyFuncという関数を上書きしたい場合は以下のようにjavascript:プロトコルからmyFuncを再定義すると上書きができます。</p>
<pre class="brush:javascript;">function evalInPage(fun) {
  location.href = "javascript:void (" + fun + ")()";
}

evalInPage(function () {
myFunc = function(){
	上書きする内容
}
});
</pre>
<p>location.hrefとjavascript:プロトコルを使って実行するとXPCNativeWrapperの外側でスクリプトを評価できる(Greasemonkey内の評価ではなくなる)ので、unsafeWindowを使わなくても既存の関数に触ることができます。<br />
 逆にGreasemonkey内の評価ではなくなるので、GM_関数は使えなくなります。(感覚的にはブックマークレットを実行するのと同じ)<br />
 これを同期的に扱いたいなら<span>JSDeferredを使って下のように組み込むといいらしい。</span></p>
<dl>
<dt><strong>unsafeExec on JSDeferred &#8211; 枕を欹てて聴く</strong></dt>
<dd><a title="unsafeExec on JSDeferred - 枕を欹てて聴く" href="http://d.hatena.ne.jp/Constellation/20090326/1238073714">http://d.hatena.ne.jp/Constellation/20090326/1238073714</a></dd>
</dl>
<p><span id="text5937761445">9washのRTフォーマットを一般的なものに変更するのにこの方法を使ってみた。<br />
 </span><a href="http://tw.9wash.com/about">9wash</a>はブラウザから利用できるWeb twitterクライアントです。<br />
 軽くて使い易いので、いいクライアントだと思いますが、RTのフォーマットが[RT:数字id @ユーザー名]みたいになっていて、使いにくかったのでその部分の関数を上書きして、よく使われているようなRT @ユーザー名:の書式に変えるようにしてみました。</p>
<ul>
<li><a href="https://gist.github.com/5433e8b8b294215c7335">9wash RT format.user.js</a></li>
</ul>
<dl>
<dt><strong>9wash twitter clientについて</strong></dt>
<dd><a title="9wash twitter clientについて" href="http://tw.9wash.com/about">http://tw.9wash.com/about</a></dd>
</dl>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2009/1122/res1483/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[iPhone]2chまとめサイトで暇つぶし用RSSリーダーの作り方</title>
		<link>http://efcl.info/2009/1110/res1429/</link>
		<comments>http://efcl.info/2009/1110/res1429/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 11:51:31 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[2ch]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[はてブ]]></category>
		<category><![CDATA[ブックマークレット]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=1429</guid>
		<description><![CDATA[タイトルが変ですが、iPhoneで2chまとめサイトみる環境の作成方法をまとめたメモです。
 既にニコ２ちゃんねるのようなそれ向けのアプリがあったりしますが、実際にサイトを表示する時はPCサイトをみるだけなのであんまりう [...]]]></description>
			<content:encoded><![CDATA[<p>タイトルが変ですが、iPhoneで2chまとめサイトみる環境の作成方法をまとめたメモです。<br />
 既に<a href="http://d.hatena.ne.jp/yositosi/20090604/p1">ニコ２ちゃんねる</a>のようなそれ向けのアプリがあったりしますが、実際にサイトを表示する時はPCサイトをみるだけなのであんまりうれしくなかったりします。<br />
 そこで、RSSリーダーと<a href="http://mrss.dokoda.jp/">まるごとRSS</a>を使って、2chまとめサイト専用のGoogle Readerを作成してみた。</p>
<p><a href="http://mrss.dokoda.jp/">まるごとRSS</a>を使うことでフィードが全文受信(Wedataが対応してないところは無理)できるので、わざわざサイトにアクセスする必要がなくなるのと、Bylineのようにキャッシュ機能を持っているiPhoneアプリだとオフラインでも暇つぶしになるのがいいところ。</p>
<p>手順としては</p>
<ol>
<li>Google Reader用にGoogleアカウントを作成する(元々Google Readerを使ってなかったらそれでもいい)</li>
<li>好きな2chまとめサイトを<a href="http://mrss.dokoda.jp/">まるごとRSS</a>を通してGoogle Readerに登録する<br />
 下に登録用のブックマークレットを置いてある</li>
<li>好きなRSSリーダアプリで上のアカウントを閲覧する<br />
 <a href="http://appshopper.com/news/byline">Byline</a>や<a href="http://appshopper.com/news/mobilerss">MobileRSS</a>など(これ専用と考えるともっと最適なものがあるかもしれない。オススメがあったらお願いします)</li>
</ol>
<dl>
<dt><strong>はてブで調べた2chまとめサイトの一覧 &#8211; ナマアシタノム</strong></dt>
<dd><a title="はてブで調べた2chまとめサイトの一覧 - ナマアシタノム" href="http://d.hatena.ne.jp/ashitano244/20091004/1254643353">http://d.hatena.ne.jp/ashitano244/20091004/1254643353</a></dd>
</dl>
<p>を参考にして適当に登録したものを置いておく。</p>
<ul>
<li><a href="http://www.google.com/reader/public/subscriptions/user/flash-lite/">google-reader-subscriptions.xml</a></li>
</ul>
<p>まるごとRSSを通す際にわざわざ入力するのは面倒なので、簡単に登録できるブックマークレットを作成した。</p>
<ul>
<li><a href="javascript:(function(){var%20el=document.getElementsByTagName(&quot;link&quot;);var%20flag=false;for(i=0;i&lt;el.length;i++){if(!flag&amp;&amp;el[i].getAttribute(&quot;rel&quot;)==&quot;alternate&quot;&amp;&amp;/(xml|rss)/.test(el[i].getAttribute(&quot;type&quot;))){window.open('http://mrss.dokoda.jp/analyze/?url='+encodeURIComponent(el[i].href),'_blank');flag=true;}}if(!flag){window.open('http://mrss.dokoda.jp/analyze/?url='+encodeURIComponent(location.href),'_blank');}})()">まるごとRSS登録</a> (まるごとRSSのページへ)</li>
<li><a href="javascript:javascript:(function(){var%20el=document.getElementsByTagName(&quot;link&quot;);var%20flag=false;for(i=0;i&lt;el.length;i++){if(!flag&amp;&amp;el[i].getAttribute(&quot;rel&quot;)==&quot;alternate&quot;&amp;&amp;/(xml|rss)/.test(el[i].getAttribute(&quot;type&quot;))){var%20t=el[i].href.split(&quot;/&quot;);t.shift();window.open('http://www.google.com/reader/view/feed/http://mrss.dokoda.jp/a/http'+t.join(&quot;/&quot;),'_blank');flag=true;}}if(!flag){var%20t=location.href.split(&quot;/&quot;);t.shift();window.open('http://www.google.com/reader/view/feed/http://mrss.dokoda.jp/a/http'+t.join(&quot;/&quot;),'_blank');}})()">まるごとRSS登録</a> (Google Readerの登録ページへ直接飛ぶ)</li>
</ul>
<p>まるごとRSSのページ掲載されてるブックマークレットは以前自分が書いたやつですが、RSSのページで実行しないといけなかったので、適当に書き加えて<strong>TOPページなどから実行しても登録画面</strong>にいけるようにしました。(複数のRSSフィードを持つページは苦手なので、そのときはRSSページから実行するといいです。)</p>
<pre class="brush:javascript;">javascript:
(function(){
  var%20el=document.getElementsByTagName("link");
  var%20flag=false;
  for(i=0;i&#60;el.length;i++){
    if(!flag&amp;&amp;el&#91;i&#93;.getAttribute("rel")=="alternate"&amp;&amp;/(xml|rss)/.test(el&#91;i&#93;.getAttribute("type"))){
      window.open('http://www.google.com/reader/view/feed/http://mrss.dokoda.jp/analyze/?url='+encodeURIComponent(el&#91;i&#93;.href),'_blank');
      flag=true;
    }
  }
  if(!flag){
    window.open('http://www.google.com/reader/view/feed/http://mrss.dokoda.jp/analyze/?url='+encodeURIComponent(location.href),'_blank');
  }
}
)()
</pre>
<p>中身は正直適当なので、ご自由にお使いください。</p>
<dl>
<dt><strong>RSSフィードを全文配信で読むなら まるごとRSS</strong></dt>
<dd><a title="RSSフィードを全文配信で読むなら まるごとRSS" href="http://mrss.dokoda.jp/">http://mrss.dokoda.jp/</a></dd>
</dl>
<dl>
<dt><strong>Google リーダー<br />
 </strong></dt>
<dd><a title="Google リーダー " href="http://www.google.co.jp/reader/">http://www.google.co.jp/reader/</a></dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2009/1110/res1429/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneであとで読む&amp;PCとも連携する</title>
		<link>http://efcl.info/2008/0823/res323/</link>
		<comments>http://efcl.info/2008/0823/res323/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 13:29:53 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[ブックマークレット]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=323</guid>
		<description><![CDATA[Instapaperというウェブサービスを使用する事で簡単にiPhoneでもあとで読むが実現できます。
iPhone用のアプリもあり、ブックマークレットで&#8221;あとで読む&#8221;サイトを追加していくことがで [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.instapaper.com/">Instapaper</a>というウェブサービスを使用する事で簡単にiPhoneでも<strong>あとで読む</strong>が実現できます。</p>
<p>iPhone用のアプリもあり、ブックマークレットで&#8221;あとで読む&#8221;サイトを追加していくことができる。<br />
アカウントもユーザネームだけで使用する事ができるので、パスワードなどの登録手続きはありません。<br />
iPhoneからの閲覧はアプリ上から行えて、safariで見ることもできる。</p>
<p>また応用すれば簡易的なTODOみたいなものも実現できます。<br />
<a href="http://d.hatena.ne.jp/anatoo/20080208/1202435384">InstapaperにTODOを追加するブックマークレット書いた &#8211; anatoo勉強記</a></p>
<p>PCの連携が簡単なのでとても便利。</p>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2008/0823/res323/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>livedoor クリップのブックマークレットを新しいタブで開くようにする</title>
		<link>http://efcl.info/2008/0811/res309/</link>
		<comments>http://efcl.info/2008/0811/res309/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 16:21:36 +0000</pubDate>
		<dc:creator>azu</dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[SBM]]></category>
		<category><![CDATA[ブックマークレット]]></category>

		<guid isPermaLink="false">http://efcl.info/?p=309</guid>
		<description><![CDATA[最近livedoor クリップも使うようになった。
はてブみたいにGreasemonkeyなどがたくさんあるわけではないけど、基本的な機能ができていて使い分けすれば結構いけてるSBMだ。
登録方法が公式のブックマークレッ [...]]]></description>
			<content:encoded><![CDATA[<p>最近<a href="http://clip.livedoor.com/">livedoor クリップ</a>も使うようになった。<br />
はてブみたいにGreasemonkeyなどがたくさんあるわけではないけど、基本的な機能ができていて使い分けすれば結構いけてるSBMだ。</p>
<p>登録方法が公式のブックマークレットしか見あたらないので、少しだけ改造して新しいタブで開くようにした。</p>
<p><a href="javascript:void(window.open('http://clip.livedoor.com/clip/add?link='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title)+'&amp;tags='+''+'&amp;notes='+encodeURIComponent((window.getSelection?window.getSelection().toString():document.selection.createRange().text).slice(0,150))+'&amp;jump=myclip','_blank'))">clip!</a></p>
<p>上のリンクをブックマークツールバーにD&amp;Dすればいいと思う。<br />
Firefox3でしか動作確認はしてません。</p>
]]></content:encoded>
			<wfw:commentRss>http://efcl.info/2008/0811/res309/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
