在 Javascript 中访问远程窗口的 url

Posted

技术标签:

【中文标题】在 Javascript 中访问远程窗口的 url【英文标题】:Accessing the url of a remote window in Javascript 【发布时间】:2012-04-10 08:41:03 【问题描述】:

我使用 window.open 方法打开一个新的 Google 文档演示窗口:

NewWindow = window.open("https://docs.google.com/presentation/d/1Qs9......");

我想检索该 url 以知道它已更改(演示文稿的每张幻灯片都有不同的 url,我想查看用户是否更改了幻灯片),使用 NewWindow.location.href

我得到的只是一个未定义的值。我可以更改 href

NewWindow.location.href ="http://www.google.com"; //works

我了解到,如果您不在同一个域中,则不允许您访问远程窗口上的 href 或任何其他属性。

就没有其他办法了吗?

提前致谢。

【问题讨论】:

不,没有使用正常的网页。在使用 HTA 或带有签名脚本的窗口上,您可以访问其他窗口。 【参考方案1】:

有一种解决方法,但在 javascript 中没有。

标准解决方案是使用隐藏在您自己域的某个 URL 下运行的代理服务器将文档映射到您自己的域。

这样,您就可以通过https://your.doma.in/google/presentation/...访问文档

警告:如果您在配置代理时出错,破解者可能会滥用它来做一些令人讨厌的事情(例如试图破解 Google 或发送垃圾邮件;警察会来敲您的门)。

【讨论】:

以上是关于在 Javascript 中访问远程窗口的 url的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Chrome 插件中访问任意网页中的 JavaScript 变量

高级篇javascript静态页面传值的三种方法 url方法,取值方便,可跨域; cookie方法,同源访问; window.open方法,指向父窗口

高级篇javascript静态页面传值的三种方法 url方法,取值方便,可跨域; cookie方法,同源访问; window.open方法,指向父窗口

javascript History对象属性和方法

javascript的对象

使用 JavaScript 在新窗口中打开 URL