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.