2

ブラウザーで選択したコンテンツの代わりに IE ブラウザーに貼り付ける入力として、次の HTML マークアップがあります。

<span id='fs_892_3006_0' class='ParaMarked' FactType='NonNumeric' onclick='OnSpanClick("fs_892_3006_0", event)' IsFactMarked='true'>
    <fact id='892_3006_0' keyword=''>
        <P style="margin: 0pt 0pt 10pt; line-height: 115%; font-size: 11pt;">
            <SPAN style="font-family: Calibri; font-size: 11pt;">THIS IS A TEST CONTENT 1</SPAN>
        </P>
    </fact>
</span>

ただし、HTML がレンダリングされると、IE は以下に示すように、この HTML を囲む余分なタグを追加します。

<p style="margin: 0pt 0pt 10pt; line-height: 115%; font-size: 11pt;">
   <span style="font-family: Calibri; font-size: 11pt;">
        <span id="fs_892_3006_0" class="ParaMarked" onclick='OnSpanClick("fs_892_3006_0", event)' IsFactMarked="true" FactType="NonNumeric">
          <fact id="892_3006_0" keyword="">
</p><p style="margin: 0pt 0pt 10pt; line-height: 115%; font-size: 11pt;"><span style="font-family: Calibri; font-size: 11pt;">THIS IS A TEST CONTENT 1</span></p></fact></span></span>

HTML をブラウザーに貼り付ける以下の手法を試しましたが、同じ結果が得られます。: 「 markedText
」は、上記の HTML 入力を含む JavaScript 変数ですen-us/library/ie/ms536656(v=vs.85).aspx 2. Rangy ライブラリ:       var sel = rangy.getSelection();       var 範囲 = sel.getRangeAt(0);       range.deleteContents();       var node = range.createContextualFragment(markedText);       range.insertNode(ノード);









これに関する任意のポインタをいただければ幸いです。

ありがとう。

4

1 に答える 1

0

スパン内のpは、インライン要素内のブロックレベルの要素であるため、おそらく機能しません。

一部のブラウザは、インライン要素をブロックレベル要素(デフォルトは「p」)でラップすることで問題を「修正」し、残りのマークアップを続行します。

于 2012-11-17T16:59:00.443 に答える