1

内部の情報の構造が不適切に作成されても損益分岐点が発生しないようにするにはどうすればよいですか。

すなわち:

<div id="bulletproof_div">
    <div> </div>
    <div> </div>
    <div id="unclosed_div">
</div>

<div id="normally_this_one_would_break">
</div>

編集:コンテキストは、送信される情報を制御できないメールシステムであるため、Webサイトが破損しないようにする必要があります。

私はiframeでうまく試しましたが、divの内部htmlを変更できる必要があるため、iframeは理想的ではありません。

読んでくれてありがとう

4

2 に答える 2

2

Iframes are the only 100% bullet-proof containers to isolate contents from the surrounding page.

于 2012-11-27T15:12:38.790 に答える
2

「bulletproof_div」に追加される前に壊れたマークアップにアクセスできる場合は、この関数を使用して、追加される前にマークアップを「修正」できます。

function cleanMarkup(markupStr) {
    // temp 'div' only used as a container, it is not returned with output
    var temp = document.createElement("div");
    temp.innerHTML = markupStr;
    return temp.innerHTML;
}

ほとんどのブラウザは壊れたマークアップを修正しようとするため、innerHTMLプロパティを設定した直後に取得すると、値は「修正された」マークアップ文字列になります。

したがって、この入力を考えると

cleanMarkup("<div></div> <div id='unclosed'>test!")

関数は返す必要があります

<div></div> <div id="unclosed">test!</div> 
于 2012-11-27T15:15:40.807 に答える