?DとLDRの為に
Friday, 8. September 2006, 13:53:09
UserJSをちょいと調整したので覚え書き。
一つ目。ダイアリーのプレビュー機能で紹介されているUserJSをhatenaDiaryPreview.user.jsと名付けて導入した。その後コメント欄での指摘を受けhatenaDiaryPreview.jsに改名した。プレビュー機能、別に必要とはしていないので気にも留めていなかったのだけれど……折角使えるようにしてくれたのだから導入しない手はない。
二つ目。別窓に別れを告げるUserJSがLivedoor Readerの実行に必要な関数を上書きしているようだったので拡張子を.user.jsに変え、除外対象に加えてみた。今現在入れているUserJSは以下のようになっている。人様の著作物の寄せ集め。
// ==UserScript==
// @name disableTargetBlank
// @include http://*
// @exclude http://reader.livedoor.com/reader/
// ==/UserScript==
(function () {
window.opera.addEventListener('BeforeScript', function(e){
e.element.text = e.element.text.replace(/window\.open/g,'void');
}, false);
window.opera.addEventListener('AfterEventListener.load', function(){
var expr = (window.name) ? '/*[@target="_blank"]' : '//*[@target]';
var result = document.evaluate(expr, document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
var node;
while(node = result.iterateNext()) node.target = '_top';
}, false);
document.addEventListener('load', disableTargetBlankAll, false);
function disableTargetBlank(tag) {
var linkAnchs = document.getElementsByTagName(tag);
for (var i = 0; i < linkAnchs.length; i++) {
var LAtarget = linkAnchs.target;
if((!window.name && LAtarget) || LAtarget == '_blank' || LAtarget == '_new' || LAtarget == '_brank') {
linkAnchs.target = '_top';
}
}
}
function disableTargetBlankAll() {
disableTargetBlank('base');
disableTargetBlank('a');
disableTargetBlank('area');
disableTargetBlank('link');
disableTargetBlank('form');
}




takeo # 8. September 2006, 14:14
Kuruma # 10. September 2006, 05:17