我在 FireFox 中使用 GreaseMonkey,代码如下
if (window.opener)
{
alert(window.opener.location.href);
}
但是,我收到一个Permission Denied
错误,可能是由于跨域策略。我如何克服这种保护?
我在 FireFox 中使用 GreaseMonkey,代码如下
if (window.opener)
{
alert(window.opener.location.href);
}
但是,我收到一个Permission Denied
错误,可能是由于跨域策略。我如何克服这种保护?
如果窗口与其打开器位于不同的域中,则不能执行此操作。 对于纯 javascript,阻止此信息被认为是一种安全保障。
对于 Greasemonkey 来说,这可能不是一个安全问题,但 Greasemonkey 的开发人员并没有添加该功能。Greasemonkey 只是普通的 javascript,添加了选择、有限的扩展功能。
您可以为此打开一个功能请求,但除非您能够为两者提供一个很好的案例,否则它不太可能被批准:这是如何有用的,以及它如何不会导致粗心的 GM 用户被“pwned”。
同时,您可以随时 fork Greasemonkey 源代码并构建您自己的版本以打破跨域障碍。
或者,根据您真正想要做的事情,可能存在涉及两个或多个脚本实例通信的解决方法。打开一个新问题并详细描述场景,以获得解决方法的帮助。