gpt4 book ai didi

javascript - 为什么这个 window 对象没有 eval 函数?

转载 作者:行者123 更新时间:2023-11-29 20:23:21 25 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

我不久前发现,您可以先使用 execScript 使 eval 神奇地出现在 IE 的 iframe 窗口对象中:

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

关于javascript - 为什么这个 window 对象没有 eval 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com