在新的safari选项卡中打开URL - safari extention

时间:2015-04-27 09:58:46

标签: safari-extension

一般来说,我问完全一样的问题:

Safari extension: Event for a completely new tab?

在这个答案(案例3)中,他指导在inject.js中监听点击事件。

有人可以展示这个实现吗?

1 个答案:

答案 0 :(得分:3)

这是我之前使用过的一个扩展程序的实现:

  1. 创建return [ self.sundayAMButton, self.mondayAMButton, self.tuesdayAMButton, self.wednesdayAMButton, self.thursdayAMButton, self.fridayAMButton, self.saturdayAMButton, self.sundayPMButton, self.mondayPMButton, self.tuesdayPMButton, self.wednesdayPMButton, self.thursdayPMButton, self.fridayPMButton, self.saturdayPMButton ].map(nilToBool) 文件,在Extension Builder中,在扩展程序全局页面部分下选择该文件:
  2. Global Page Settings

    1. global.html的来源:

      global.html
    2. 创建<!doctype html> <html> <head> <meta charset="utf-8"> <title>My Extension</title> </head> <body> <script> function messageHandler(event) { var newTab = null; var url = null; if (event.name === "open_new_tab") { url = event.message; newTab = safari.application.activeBrowserWindow.openTab(); newTab.url = url; } } safari.application.addEventListener("message", messageHandler, false); </script> </body> </html> 文件,并将其添加到已注入的扩展程序内容 - &gt;结束脚本部分:

    3. end scripts

      1. extension.js的来源:

        extension.js
      2. 这会发送一条消息,其中包含您的(function() { // ... rest of you extension code openNewTabWithUrl("http://google.com") function openNewTabWithUrl(url) { safari.self.tab.dispatchMessage("open_new_tab", url); } }()); extension.js的网址,该网址会选择该消息并打开新标签页。