【发布时间】:2012-04-17 05:34:41
【问题描述】:
我正在创建一个 Safari 扩展程序。如何手动将新选项卡/窗口设置为我选择的 URL?我使用了这篇文章中的一些逻辑来确保我只接管用户创建的标签/窗口Safari extension: Event for a completely new tab?
我设置了我的新标签事件监听器:
safari.application.addEventListener("open", handleOpen, true);
使用它来处理打开的标签/窗口:
function handleOpen(e) {
if (e.target instanceof SafariBrowserTab) {
e.target.addEventListener('beforeNavigate', handleBeforeNavigate, false);
setTimeout(function () {
e.target.removeEventListener('beforeNavigate', handleBeforeNavigate, false);
takeOverTab();
}, 50);
}
}
function handleBeforeNavigate(e) {
e.target.removeEventListener('beforeNavigate', handleBeforeNavigate, false);
if (e.url === null) {
takeOverTab();
}
}
function takeOverTab() {
window.location.href = "http://www.yahoo.com";
}
我可以在打开新选项卡/窗口时发出警报,但我终其一生都无法弄清楚如何实际浏览到该 url。我尝试了 window.location.href 但这似乎没有任何作用,当我打开一个新标签时,我仍然会得到“热门网站”页面。
提前致谢!
【问题讨论】:
标签: javascript safari-extension