2
A
回答
2
我已經只是把在全球頁面的代碼,並使用隱藏的設置項,以確保它只能運行在第一時間做過這樣的事情:
if (!safari.extension.settings.hasRun) {
safari.extension.settings.hasRun = true;
alert('Congratulations!');
}
有一點要注意的意思是,任何注入的腳本只能在新加載的頁面上或刷新後注入。所以使用上面的代碼向注入的腳本發送一條消息來修改當前打開的頁面的內容會有點麻煩。你將不得不強制刷新,或者只開一個歡迎消息的標籤:
if (!safari.extension.settings.hasRun) {
safari.extension.settings.hasRun = true;
safari.application.openBrowserWindow();
safari.application.activeBrowserWindow.activeTab.url = "http://www.example.com/welcome";
}
相關問題
- 1. Safari擴展 - 消息
- 2. Safari無法安裝此擴展程序
- 3. 您可以在Mac應用程序中安裝Safari擴展嗎?
- 4. Safari擴展發送消息到應用程序
- 5. Safari擴展消息傳遞
- 6. Safari擴展:「安裝」事件?
- 7. 是否可以使用NSIS安裝程序來安裝Safari(Windows)擴展程序?
- 8. 如何在安裝Chrome擴展程序時觸發onDownloadProgress?
- 9. 從桌面軟件包安裝Safari擴展程序
- 10. 如何檢查Safari是否安裝了擴展程序?
- 11. 如何通過AppleScript在Safari中安裝擴展程序
- 12. Tab鍵重裝在Safari擴展安裝後
- 13. 檢測是否安裝了Safari擴展
- 14. Ecllipse處理程序在安裝後不會觸發
- 15. 安裝msi後設置擴展程序的默認程序
- 16. Safari擴展將消息發送到特定選項卡
- 17. Safari擴展中的注入腳本不會在Youtube中觸發
- 18. 安裝Visual Studio擴展程序
- 19. 使用Macports安裝php擴展程序
- 20. 支架,安裝擴展程序無法
- 21. Firefox自定義擴展安裝程序
- 22. 在JavaCard上安裝擴展小程序
- 23. 擴展已安裝的應用程序
- 24. 如何在Safari中安裝擴展後訪問DOM
- 25. Chrome擴展程序自動觸發
- 26. 如何使用安裝項目安裝safari擴展?
- 27. Chrome擴展程序:元素創建時觸發事件嗎?
- 28. Chrome擴展程序開發:消息傳遞問題
- 29. 如何從Google Chrome擴展程序發送Twitter直接消息?
- 30. 從網絡應用程序發送消息到擴展
感謝,簡單巧妙:)我不知道是否在某些方面有可能消息從全球網頁的頁面所以要避免刷新。我試圖通過safari.application.activeBrowserWindow.activeTab.page.dispatchMessage向頁面發佈消息,它看起來好像是發送的,但我無法從我的頁面的js中聽到它(試過window.addEventListener和document .addEventListener但它看起來不起作用)。 – Pietro
據我所知,出於安全原因,頁面上的js與擴展保持完全分離。我想不出任何方法來將額外的js注入到已安裝擴展之前加載的頁面中。您可以考慮暫時添加一個工具欄按鈕並以編程方式激活一個彈出頁面,該頁面可以包含您的消息,但與強制刷新或打開新選項卡並無太大區別。 –