2

IEのYUI リッチ エディット デモで興味深い (?) 問題に遭遇しました。windowブラウザーとして使用されるコンテンツ編集可能フレームのオブジェクトを見ると、eval関数が未定義であることがわかります (以下を実行すると)。

javascript:alert(document.getElementById("editor_editor").contentWindow.eval)

これは IE でのみ発生し (IE6 と IE8 で確認しました)、Firefox や Chrome では発生しません。

他のすべての関数とプロパティは順調に進んでいるようです。これは実際には定義されていませんが、グローバルオブジェクトで定義されているwindowことに気付きましたが、ブラウザでがグローバルオブジェクトであることがわかりました(他のすべてのウィンドウにも表示されるので、なぜですか?これで?)。evalwindowwindow eval

これがIEの既知のバグ/制限であるかどうか、およびevalこのフレームのグローバルオブジェクトのコンテキストでどのように取得できるかを知っている人はいますか? (このフレーム内から実行されているものすべてに副作用を利用できるようにする必要があります)。

4

1 に答える 1

3

firstevalを使用して、IE の iframe のウィンドウ オブジェクトに魔法のように表示できることをしばらく前に発見しました。execScript

function evalIframe(iframeWin, command) {
    if (!iframeWin.eval && iframeWin.execScript) {
        iframeWin.execScript("null");
    }
    if (iframeWin.eval) {
        iframeWin.eval(command);
    } else {
        alert("No eval!");
    }
}
于 2010-04-27T10:57:09.643 に答える