如何检索以前打开的窗口的URL ?



我像这样打开一个窗口:

var w = window.open("", "window-name", opts);

然后我使用一些动态数据创建一个URL,并将窗口设置为该URL,如下所示:

w.location.href = url;

我的问题是我需要检索之前设置到窗口的URL以便稍后进行编辑。这样做不起作用:

var url = w.location.href;

因为在我的情况下,这是一个安全违反,并触发一个异常。

我不能只是将URL保存为"全局"变量,因为这需要跨页面工作。我不想使用cookie,因为URL 应该在窗口关闭时重置。使用cookie会增加更多的复杂性,因为它迫使我在窗口关闭之前进行清理,并且增加了bug风险。我将把它作为最后的手段。

是否有任何方法来检索一个窗口实例的URL后,URL已设置为不同的域?

像这样使用window.name属性…

var w = window.open('http://www.example.com', 'www.previousurlhere.com', opts);

然后,当新窗口打开时(假设它是你的),从新窗口内,你可以抓取window.name数据,如…

var previousUrl = window.name;

应该可以了

浏览器不会告诉您以前访问过的其他域的url的状态。这是出于安全考虑。

如果你在同一个领域工作,也许你可以查询History API来得到你需要的东西。或者,您可以通过LocalStorage或其他解决方案将访问的url存储在客户端上。

相关内容

  • 没有找到相关文章

最新更新