我像这样打开一个窗口:
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存储在客户端上。