Safari模拟chrome.tabs.update或loadURI

时间:2011-09-14 09:50:43

标签: safari-extension

我需要在Safari中模拟Chrome chrome.tabs.update或Firefox loadURI。 我已经尝试safari.application.activeBrowserWindow.activeTab.url = newURL,但它不适用于像javascript:...

这样的书签网址

1 个答案:

答案 0 :(得分:1)

没错,它不起作用。您将不得不将消息传递到网页中的注入脚本以打开书签。例如:

在全局页面的脚本中:

  var activeTab = safari.application.activeBrowerWindow.activeTab;
  var url = "javascript:alert('hello sucker')";
  activeTab.page.dispatchMessage("pleaseLoadThisUrl", url);

在注入的脚本中:

  safari.self.addEventListener("message", handleMessage, false);

  function handleMessage(e) {
      if (e.name == "pleaseLoadThisUrl") {
          window.location = e.message;
      }
  }

这将有效。