我打开这样一个窗口:
var w = window.open("", "window-name", opts);
然后我使用一些动态数据创建一个URL,并将窗口设置为该URL:
w.location.href = url;
我的问题是我需要检索之前设置到窗口的URL以便进行编辑。这样做并不起作用:
var url = w.location.href;
因为在我的情况下这是违反安全规则并触发异常。
我无法将网址保存为"全球"因为这需要跨页面工作。我不想使用Cookie,因为当窗口关闭时,网址应重置。使用cookie会增加更多的复杂性,因为它迫使我在窗口关闭之前进行清理,并增加了bug风险。我将把它作为最后的手段。
在将URL设置为其他域上的内容后,有没有办法检索窗口实例的URL?
答案 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存储在客户端上。