0

iframe オブジェクトをバッファーとして使用して、同じドメインから外部ページをロードするメイン ページがあるとします (セキュリティ上の理由から)。XMLHttpRequest は、すべてのブラウザーで文字列の外部 xhtml コンテンツから解析できないため、この方法を選択しました。

コンテンツが iframe に読み込まれた後、「contentDocument」プロパティを使用してそのコンテンツを「盗み」、すべての CSS スタイルとスクリプト タグを親のヘッダーに追加し、最終的に iframe を削除します (CSS とスクリプトはインラインであることに注意してください)。したがって、外部リンクはまったくありません)。

今ではすべてがうまく機能しています - 新しい JavaScript 関数を呼び出すことができ、css も同様に機能します。

私の質問は: 新しく追加された CSS スタイルを削除することはできますが、javascript では機能しません。ヘッダーの新しく追加されたスクリプト タグを同じドキュメント内から削除する解決策はありますか?

私は絶望的にこれを試しました(cssは消え、javascriptはまだ残っています...)

    function emptyheader()
    {
        /* var container = document.getElementById("container"); */

        var header = document.getElementsByTagName('head')[0];  

        /* styles = header.getElementsByTagName('style'); */
        /* scripts = header.getElementsByTagName('script'); */

          while(header.hasChildNodes())
          header.removeChild(header.firstChild);    
     }
4

1 に答える 1

0

私は海岸ではありません。あなたの言いたいことは理解できます。ただし、スクリプトを追加してから削除する方法の例を次に示します(私の知る限り、スクリプトタグを本文に追加しても問題ありません)。

<script>
function addAndRemoveScript() {
    var a = document.createElement("script");
    a.src = "yourscript.js";
    document.body.appendChild(a);
    document.body.removeChild(document.body.getElementsByTagName("script")[0])
    document.body.removeChild(document.body.getElementsByTagName("script")[0])
}
window.onload = addAndRemoveScript();
</script>
于 2012-06-22T19:26:28.747 に答える