LDRですべての外部リンクをバックグラウンドタブで開くUserScripts
Greasemonkeyでも動くようにしましたが、一応Google Chrome用です。
LDR open in background tab for Greasemonkey
- Greasemonkeyでピンの数が減らないバグを修正
Operaで「ポップアップをバックグラウンドで開く」に設定した場合と同じ動作になっているはずです。
仕組みとしては、nativeのwindow.openを上書きして、a要素を作ってミドルクリックのイベントを投げる方式です。将来的に動かなくなる可能性が高い、グレーなテクニックです。
window.open = function(url,name){ var a = document.createElement('a'); a.href = url; if (name) a.target = name; var event = document.createEvent('MouseEvents'); event.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 1, null); a.dispatchEvent(event); return true; };
普通にa要素をクリックした場合、documentのクリックイベントを監視して、targetがhrefを持ってて、さらに_blank指定だったらpreventDefaultでデフォルト動作を止め、上のwindow.openを呼んでいます。
document.addEventListener('click',function(evt){ if (evt.target.href && evt.target.target === '_blank'){ evt.preventDefault(); window.open(evt.target.href,'_blank'); } },false);
あと、おまけでmalaさんのv、p押したときにスクロールするScriptも盛り込んでます。
ほんとは混ぜるべきではないんだけど、Scriptは増やしたくないのでつい。(オリジナルがどこにあったかわからないし…)
Chrome Full Feed ver 0.0.1 - 枕を欹てて聴くもあるので、Dev版ChromeでのLDRは十分に快適です。
FirefoxでGM_openInTabした後にreturn true;するのを忘れていました…。 id:iwadonすみません