我有一个Greasemonkey脚本,它向页面添加一个iframe(称之为第1页)。 iframe包含另一个页面(称之为第2页)。该脚本也在第2页上运行。第1页和第2页位于不同的域中。
我想允许第2页中运行的代码调用第1页上的函数。鉴于对Greasemonkey代码的限制较低,这可能吗?
答案 0 :(得分:1)
浏览器会阻止这种情况,因为域名不同。
您可以使用几种技巧在帧之间进行通信:
广告3: 您将无法读取其他框架的URL,但您可以设置它。如果您将URL更改为完全相同的页面,但是将#anchor组件更改为URL,则该页面实际上不会重新加载:
window.frames["childFrame"].location.href = "http://www.somewebsite.com/#message"
然后,您需要向外部页面添加一个脚本,定期轮询它的location.href并处理消息。是的,这很难看,但如果做得好,它将适用于所有常见的浏览器。