mageManagerのJavaScriptコードを修正する

投稿者: | 2007年3月20日
想定される対象読者がおそろしく狭い話。
WordPressの投稿画面で画像の扱いを素晴らしく便利にしてくれるプラグインImageManager。これなしでは画像入りの記事を書きたくないというくらい便利。
しかしHTMLヲタクには唯一気になる部分がある。
WordPressのデフォルトになっているXHTML 1.0上では、ImageManagerがheader Templateに書き込むJavaScriptのコードの一部が不正。それがためにクリーンなコードでサイトを作っても唯一の傷になる。
286行目付近から始まる下記部分を直せばOK。

function basename (path) { return path.replace( /.*\//, "" ); }
var winimg=null;
function ps_imagemanager_popup(imgurl,title,w,h) {
lpos=(screen.width)?(screen.width-w)/2:100;
tpos=(screen.height)?(screen.height-h)/2:100; settings=’width=’+w+’,height=’+h+’,top=’+tpos+’,left=’+lpos+’,scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes’;
winimg=window.open(’about:blank’,'imagemanagerpopup’,settings);
var doc = ”;
doc += ‘<html><head>’;
doc += ‘<title>’ + title + ‘ - ‘ + basename(imgurl) + ‘(’ + w + ‘x’ + h +’)<\/title>’;
doc += ‘<style type="text/css"><!– body { margin:0px; padding:0px; } –><\/style>’;
doc += ‘<\/head>’;
doc += ‘<body onload="self.focus();">’;
doc += ‘<img style="cursor:pointer;" src="’ + imgurl + ‘" title="’ + title + ‘" onclick="self.close();"/>’;
doc += ‘<\/body><\/html>’;
winimg.document.writeln(doc);
winimg.document.close();
}

つまり、五箇所閉じタグの/を\でエスケープしてやるだけ。
・・・ほんとに反応想定読者が狭い話だな。