2

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

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

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

所有其他window功能和属性似乎都是有序的,现在我意识到这eval并不是全局对象上而是在全局对象上定义的,window但我的理解是在浏览器中window 全局对象(也eval确实出现在所有其他窗口上,所以为什么不在这个?)。

有谁知道这是否是 IE 中的已知错误/限制,以及我如何才能eval在此框架的全局对象的上下文中到达?(我需要在这个框架内运行的任何东西都可以使用副作用)。

4

1 回答 1

3

不久前我发现,您可以先使用以下eval方法神奇地出现在 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 回答