【发布时间】:2017-08-26 08:22:18
【问题描述】:
我正在尝试开发一个书签。小书签的目的是显示当前选项卡和新选项卡的 URL,该选项卡是通过 window.open 调用而启动的。为简化起见,假设launcher.com 启动一个随机URL 进行访问。
function getBothURLs() {
var currentURL, newWin;
function launchNew () {
currentURL = window.location.href;
newWin = window.open("https://www.launcher.com");
}
launchNew();
alert(currentURL);
alert(newWin.location.href); // displays 'about:blank'
}
我无法获取新启动标签的 URL。 alert()(在下面函数的最后)没有正确显示新启动选项卡的 URL;而是显示
about:blank
当我在 Chrome 控制台中对此进行故障排除时,我将 var currentURL, newWin 的定义移到了 getTwoURLs() 函数的范围之外。当我从控制台中调用函数getBothURLs() 时,currentURL 和newWin 都有有效数据。
应该如何修改函数getBothURLs()才能达到预期的目的?
【问题讨论】:
-
最好将随机 url 值添加到变量中,例如:newUrl = "google.com",然后将值分配给 newWin 变量,例如:newWin = window.open(newUrl);完成此操作后,尝试输入以下行:alert(newUrl);我希望它会起作用。
-
我假设您正在打开不同来源的网址。您可以访问其他 url 的代码库吗? @AntonySUTHAKARJ 的评论很有道理,你能解释一下为什么这对你不起作用吗?
-
出于所有实际目的,URL 是在同一来源上打开的。但由于 URL 将包含一个自动生成的十六进制数字作为其中的一部分,因此无法提前知道。
-
是否有理由不将
urlToOpen作为参数传递给getBothURLs?我想这里应该有一个带有输入和输出的函数。
标签: javascript url tabs bookmarklet