bookmarkから使うJavaScript。
役に立つかどうかは分かりません。
em要素・strong要素を傍点で強調します。それだけ。
Mozillaで動作確認。Operaではスタイル部分を調節する必要あり( margin-left:-1.5em; margin-right:0.5em; vertical-align:200% あたりで)。
javascript:(function(){var nEms=document.getElementsByTagName('em'); for(var i=0; i<nEms.length; i++){elementDotEm(nEms[i]);}var nStrongs=document.getElementsByTagName('strong'); for(var i=0; i<nStrongs.length; i++){elementDotEm(nStrongs[i]);}addEmStyle(); /* end */ function elementDotEm(n){var ns=new Array(); for(var i=0; i<n.childNodes.length; i++){ns[ns.length]=n.childNodes.item(i);}for(var i=0; i<ns.length; i++){if(ns[i].nodeType==3)spanSplit(ns[i]); else if(ns[i].nodeType==1 && !ns[i].tagName.match(/^(rb|em|strong)$/i))elementDotEm(ns[i]);}}function spanSplit(nText){var fr=document.createDocumentFragment(); var chars=nText.data.split(''); for(var i=0; i<chars.length; i++){var nAdd; if(chars[i].match(/^[0-9A-Za-z\u00c0-\u024f\u0370-\u1fff\u3040-\u30ff\u4e00-\ud7a3\uf900-\ufdff\ufe70-\ufeff\uff10-\uff19\uff21-\uff3a\uff41-\uff5a\uff66-\uff9d]$/)){nAdd=document.createElement('span'); nAdd.className='dot-em'; nAdd.appendChild(document.createTextNode(chars[i]));}else{nAdd=doc
ument.createTextNode(chars[i]);}fr.appendChild(nAdd);}nText.parentNode.replaceChild(fr, nText);}function addEmStyle(){var nStyle=document.createElement('style'); nStyle.type='text/css'; var cssText=document.createTextNode('em,strong{line-height:1; font-style:normal;}em span.dot-em:after,strong span.dot-em:after{content:\u0027\u4e36\u0027; font-size:50%; font-weight:normal; margin-left:-1.0em; margin-right:0; vertical-align:100%;}'); nStyle.appendChild(cssText); document.getElementsByTagName('head').item(0).appendChild(nStyle);}})()
元ソース:
function(){ var nEms = document.getElementsByTagName('em'); for (var i = 0; i < nEms.length; i++) { elementDotEm(nEms[i]); } var nStrongs = document.getElementsByTagName('strong'); for (var i = 0; i < nStrongs.length; i++) { elementDotEm(nStrongs[i]); } addEmStyle(); /* end */ function elementDotEm(n) { var ns = new Array(); for (var i = 0; i < n.childNodes.length; i++) { ns[ns.length] = n.childNodes.item(i); } for (var i = 0; i < ns.length; i++) { if (ns[i].nodeType == 3) spanSplit(ns[i]); else if ( ns[i].nodeType == 1 && !ns[i].tagName.match(/^(rb|em|strong)$/i) ) elementDotEm(ns[i]); } } function spanSplit(nText) { var fr = document.createDocumentFragment(); var chars = nText.data.split(''); for (var i = 0; i < chars.length; i++) { var nAdd; if (chars[i].match(/^[0-9A-Za-z\u00c0-\u024f\u0370-\u1fff\u3040-\u30ff\u4e00-\ud7a3\uf900-\ufdff\ufe70-\ufeff\uff10-\uff19\uff21-\uff3a\uff41-\uff5a\uff66-\uff9d]$/)) { nAdd = document.createElement('span'); nAdd.className = 'dot-em'; nAdd.appendChild(document.createTextNode(chars[i])); } else { nAdd = document.createTextNode(chars[i]); } fr.appendChild(nAdd); } nText.parentNode.replaceChild(fr, nText); } function addEmStyle() { var nStyle = document.createElement('style'); nStyle.type = 'text/css'; var cssText = document.createTextNode('em,strong{line-height:1;font-style:normal;}em span.dot-em:after,strong span.dot-em:after{content:\u0027\u4e36\u0027;font-size:50%;font-weight:normal;margin-left:-1.0em;margin-right:0;vertical-align:100%;}'); nStyle.appendChild(cssText); document.getElementsByTagName('head').item(0).appendChild(nStyle); } }
最近のバージョンのMozillaでコンテントネゴシエーションを使うページを開いた場合に、ページ内のある箇所へ進むリンクのURLがおかしくなるのを補正するものです。
1.7 RC2を入れたら直ったので、そうした方が早いでしょう。一応元ソースのみ表示。
元ソース:
function(){ var as = document.getElementsByTagName('a'); for (var i = 0; i < as.length; i++) { var a = as.item(i); if (!a.getAttribute('href')) continue; if (a.getAttribute('href').indexOf('#')) continue; a.href = location.href.split('#')[0] + a.getAttribute('href'); } }
以下の形式で書かれた複数行のソースを javascript:(function(){ ... })() という形式に変更したものをクリップボードに格納します。
function(){ ... ... }
マクロソース:
//js2bmlt.mac selectall; copy; newfile; disabledraw; paste; gofiletop; insert "javascript:("; replaceallfast "[\\n\\t ]+"," ",regular; replaceallfast "[(){};=+<>]\\f +", "\\0", regular; replaceallfast " +\\f[<>(){};=+]", "\\1", regular; gofileend; insert ")()"; selectall; copy; quit;YukiWiki 2.1.2 (C) 2000-2004 by Hiroshi Yuki.