我正在创建一个 Safari 扩展程序。如何手动将新选项卡/窗口设置为我选择的 URL?我使用了这篇文章中的一些逻辑来确保我只接管用户创建的选项卡/Windows Safari 扩展:全新选项卡的事件?
我设置了我的新标签事件监听器:
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 但这似乎没有任何作用,当我打开一个新标签时,我仍然会得到“热门网站”页面。
提前致谢!