Javascript &引用;错误:ReferenceError:安全错误:试图读取受保护变量:write";使用Opera 11.5和window.open和document.write

Javascript &引用;错误:ReferenceError:安全错误:试图读取受保护变量:write";使用Opera 11.5和window.open和document.write,javascript,opera,window.open,document.write,Javascript,Opera,Window.open,Document.write,我对window.open有一个问题,该问题仅在Opera(11.5版)中出现 如果我打开一个像谷歌、雅虎这样的URL,甚至从我的web服务器打开一个网页,它也能工作 然而,当我将它附加到onclick事件时,就像在HTML按钮上一样,它失败了 <input type="button" value="Fails" onclick="openpageopera();"> 什么特别失败?嗯,页面确实打开了,但它是空白的。document.write不工作。捕获注意到以下错误: 错误

我对window.open有一个问题,该问题仅在Opera(11.5版)中出现

如果我打开一个像谷歌、雅虎这样的URL,甚至从我的web服务器打开一个网页,它也能工作

然而,当我将它附加到onclick事件时,就像在HTML按钮上一样,它失败了

<input type="button" value="Fails" onclick="openpageopera();">

什么特别失败?嗯,页面确实打开了,但它是空白的。document.write不工作。捕获注意到以下错误:

错误:引用错误:安全错误:尝试读取受保护变量:写入

我不明白为什么在html按钮上执行此操作会引发安全错误。为什么会发生这种情况?我如何解决它


非常感谢你的帮助

我结束了在Opera浏览器中清除所有私有数据的工作,它成功了。但是,每次加载页面时,我都确保按shift或ctrl refresh清除缓存。要么是缓存问题,要么完全是其他问题。

如果某个地方有代码设置
document.domain
可能会更改父页面的安全上下文。(如果将document.domain设置为其当前值,也会发生这种情况。)打开“”或about:blank时,它应该继承父级的安全上下文,并且
document.write()
应该可以工作-但我知道Opera过去有一些错误,在使用空弹出窗口时设置document.domain会导致问题。我相信这些bug在11.50中已经修复,但看起来您遇到了类似的问题。如果可以,请避免设置document.domain

如果你看到这个问题再次发生,请让我知道,最好让我看看完整的代码。我很想在每一个化身中都钉上这个虫子


顺便说一句,请记住,用户JS、扩展,甚至由插件触发的JS也可能会干扰document.domain,所以请尝试禁用任何可能干扰的内容。

对我来说不会失败(opera 11.51)。你能粘贴完整的代码以便我测试它吗?她说:是的,你的代码确实有效。古怪的我复制了文档中的所有内容,并将其粘贴到新文档中,并重命名了该文件。这个新文档工作得很好,但它的代码完全相同。然后,我清除了所有的私有数据,并尝试了原始数据和副本,它们都工作正常。这很奇怪,因为我确保清除缓存(shift或ctrl刷新)。这一定是缓存问题,不过,我想,我不太确定。谢谢你的帮助。我在尝试启动phpmyadmin(opera版本11.52)时收到了相同的消息…谢谢。我没有设置document.domain。我通过CDN使用jQuery;因此,除非他们在操纵它,否则我根本不会使用它。在这种情况下,如果问题确实在清除私有数据后消失了,那么可能是缓存出现了一些问题。我本人从未见过这种情况,对缓存数据的组织方式知之甚少,但缓存表中的错误可能会使Opera为页面应用错误的安全上下文?这太奇怪了-/
$(document).ready(function() {
  openpageopera();
});
<input type="button" value="Fails" onclick="openpageopera();">