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

时间:2014-06-03 16:09:23

标签: javascript browser browser-history browser-tab

我打开这样一个窗口:

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

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

w.location.href = url;

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

var url = w.location.href;

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

我无法将网址保存为"全球"因为这需要跨页面工作。我不想使用Cookie,因为当窗口关闭时,网址重置。使用cookie会增加更多的复杂性,因为它迫使我在窗口关闭之前进行清理,并增加了bug风险。我将把它作为最后的手段。

在将URL设置为其他域上的内容后,有没有办法检索窗口实例的URL?

2 个答案:

答案 0 :(得分:0)

使用window.name这样的属性......

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

然后,当新窗口打开时(假设它是您的),在新窗口中,您可以抓取window.name数据,如...

var previousUrl = window.name;

那应该这样做。

答案 1 :(得分:-1)

浏览器不会告诉您其他域以前访问过的网址的状态。这是出于安全原因。

如果您正在使用同一个域,也许您可​​以查询History API以获得所需内容。或者,您可以通过LocalStorage或其他解决方案将访问过的URL存储在客户端上。