
以前の方法では<br />以外のタグも削除されてしまっていた
そこで今回は削除すべきエレメントかどうかを判別するようにしてみた
一応IE6,FireFox1.07,Netscape Navigator7.1に於いて期待する結果が得られたが、他のブラウザはインストールしていないためわからない
・・・けどまぁ、恐らく大丈夫だろう
動かない場合、elm.item(s).childNodes.item(y).tagNameをalertデバッグするなりして'BR'と等価か調べておき、もし小文字を返したりするようであればor条件文を付け加えるか、もしくは正規表現を使えばいいと思う
つーわけで動かないブラウザがあればコメントください
できるだけこちらで修正等したいと思います
注:そもそもDOMが未サポートのブラウザに対応させるのを要求するのはやめてください
追記:タグの内容が複数行にまたがる場合に除去されない恐れがある
これについてはまた次回で修正しようと思う
追記2:タグの途中で改行しているような(<img src="hoge.jph"[ここで改行して]alt="hoge">のような)場合にはそもそも正常にタグとして働かない恐れがある
・・・これは直せるのか?
そこで今回は削除すべきエレメントかどうかを判別するようにしてみた
一応IE6,FireFox1.07,Netscape Navigator7.1に於いて期待する結果が得られたが、他のブラウザはインストールしていないためわからない
・・・けどまぁ、恐らく大丈夫だろう
<script type="text/javascript">
<!--
elm = document.getElementsByTagName('pre');
var s = 0;
while(s < elm.length){
var y = 0;
while(y < elm.item(s).childNodes.length){
if(elm.item(s).childNodes.item(y).tagName == 'BR'){
elm.item(s).removeChild(elm.item(s).childNodes.item(y));
}else{
y++;
}
}
s++;
}
//-->
</script>
ちゃんと他のタグが除去されていないかのテスト
動かない場合、elm.item(s).childNodes.item(y).tagNameをalertデバッグするなりして'BR'と等価か調べておき、もし小文字を返したりするようであればor条件文を付け加えるか、もしくは正規表現を使えばいいと思う
つーわけで動かないブラウザがあればコメントください
できるだけこちらで修正等したいと思います
注:そもそもDOMが未サポートのブラウザに対応させるのを要求するのはやめてください
追記:タグの内容が複数行にまたがる場合に除去されない恐れがある
これについてはまた次回で修正しようと思う
追記2:タグの途中で改行しているような(<img src="hoge.jph"[ここで改行して]alt="hoge">のような)場合にはそもそも正常にタグとして働かない恐れがある
・・・これは直せるのか?

| ホーム |