gpt4 book ai didi

javascript - 如何为动态生成的 IFRAME 设置 document.domain?

转载 作者:数据小太阳 更新时间:2023-10-29 05:59:35 24 4
gpt4 key购买 nike

我在需要声明 document.domain 的页面上实现 CodeMirror ( http://marijn.haverbeke.nl/codemirror/ )(因为页面上有其他 IFRAMES)。

CodeMirror 生成动态 IFRAME 以提供语法高亮代码编辑。问题是 IE 在以下代码镜像代码处抛出“拒绝访问”(其他浏览器正常):

this.win = frame.contentWindow;
...
var doc = this.win.document; <-- ERROR
doc.open();
doc.write(html.join(""));
doc.close();

原来 IE 没有从父 IE 继承 document.domain。我可以在 IFRAME 内容中设置 document.domain,但 IE 在我设置内容之前就抛出了错误。有什么想法可以解决这个问题吗?

最佳答案

终于搞定了。受 TinyMCE 代码启发的黑客攻击。

var u = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.CodeMirror_boilerplate;document.write(ed);document.close();})()';

frame.src = u;

它在 SRC 中设置 document.domain,而不是通过 DOM。

关于javascript - 如何为动态生成的 IFRAME 设置 document.domain?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2486901/

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