Safari Extension Questions

前端 未结 4 1191
萌比男神i
萌比男神i 2021-02-05 17:43

I\'m in the process of building my first Safari extension--a very simple one--but I\'ve run into a couple of problems. The extension boils down to a single, injected script that

4条回答
  •  你的背包
    2021-02-05 18:31

    run into the same problem, but the answer is easier than you can imagine: include the script in your global html.

    
    
    
    

    then you can access the settings as described in documentation safari.extension.settings.myKey

    you can also upvote @Travis, because I got the idea from his post

    //EDIT:
    actually I don't really know whats wrong. Calling the settings as the first command works, but not at a later time. Additionally it seems to corrupting my complete script after the 2. injection. Need verification if it's only in my (difficult?) script.

    //EDIT2:
    now I got it to work to get back the settings object via dispatchMessage()

    in your injected.js

    function gotSettings(msgEvent) {
       if (msgEvent.name === "SETTINGS") {
          setts = msgEvent.message;
          alert(setts.mySetting1);
          // run the programm
       }
    }
    
    safari.self.addEventListener("message", gotSettings, false);
    safari.self.tab.dispatchMessage("getSettings");
    

    and in global.html

    switch (event.name) {
    case "getSettings":
       // send the settings data
       event.target.page.dispatchMessage("SETTINGS", safari.extension.settings);
    

    relying on this apple documentation

提交回复
热议问题