为什么这个窗口对象没有eval函数?

时间:2010-04-27 10:39:37

标签: javascript internet-explorer yui eval mshtml

我在IE上的YUI rich edit demo遇到了一个有趣的(?)问题。查看用作浏览器的内容可编辑框架的window对象时,我看到eval函数未定义(通过运行以下内容)。

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

这只发生在IE上(我在IE6和IE8上查看过),它不会在Firefox或Chrome上发生。

所有其他window函数和属性似乎都是有序的,现在我意识到eval <{1}}全局对象,但我的理解是,在浏览器中,window 全局对象(window确实出现在所有其他窗口上,为什么不在这个?)。

有没有人知道这是IE中的已知错误/限制以及如何在此框架的全局对象的上下文中访问eval? (我需要副作用可用于在此框架内运行的任何东西)。

1 个答案:

答案 0 :(得分:3)

我发现前一段时间你可以先使用evalexecScript神奇地出现在IE中的iframe窗口对象中:

function evalIframe(iframeWin, command) {
    if (!iframeWin.eval && iframeWin.execScript) {
        iframeWin.execScript("null");
    }
    if (iframeWin.eval) {
        iframeWin.eval(command);
    } else {
        alert("No eval!");
    }
}