「全てのタブでスクリプトを実行」機能をつけるgreasemonkeyスクリプト

 http://yagi.xrea.jp/2007/07/executescriptonalltab.user.js

 ユーザスクリプトコマンドに以下の3つを追加します。

  • 入力したjavascriptを全タブで実行(Execute script on all tab)
  • 全タブをブックマーク(Bookmark All)
  • 全タブをlivedoor Readerに追加(Subscribe All)

 1つ目のコマンドに適当なbookmarkletを突っ込めば期待通りに動くと思う。

 あとの2つは突っ込んでみた例です。


 インストール後に開いたページに対してのみ有効。

 中身はこんなん↓

// ==UserScript==
// @name           Execute script on all tab
// @namespace      http://d.hatena.ne.jp/kusigahama/
// @include        *
// ==/UserScript==
(function(){

	function save(obj) { GM_setValue("savedata", obj.toSource()); }
	function load(value) { return eval.call(window, GM_getValue("savedata", (value || {}).toSource())); }

	var last = new Date();
	setInterval(function() {
		var d = load();
		if ( !d || last > d.date )
			return;

		last = new Date();
		unsafeWindow.eval(d.script);
	}, 3000);

	GM_registerMenuCommand("Execute script on all tab", function(){
		var s = prompt("javascript:");
		if (s) save({ script:s, date:(new Date()) });
	});

	GM_registerMenuCommand("Bookmark All", function(){
		save({ script:"window.location='http://b.hatena.ne.jp/add?mode=confirm&title='+escape(document.title)+'&url='+escape(location.href);", date:(new Date()) });
	});

	GM_registerMenuCommand("Subscribe All", function(){
		save({ script:"location.href='http://reader.livedoor.com/subscribe/'+location.href", date:(new Date()) });
	});

})();

 [これはきもい]

 これをまともにやる拡張がどっかにありそうな気もする。