tampermonkey script stops working if I change the page

前端 未结 1 1008
青春惊慌失措
青春惊慌失措 2020-12-21 13:07

I am using Tampermonkey to save time on frequent tasks. The goal is to get content of an element on www.example1.com, navigate to another page, and do stuff there. The start

相关标签:
1条回答
  • 2020-12-21 13:32

    Allow the userscript on both urls and use GM_setValue/GM_getValue to organize the communication.

    //@match   http://example1.com
    //@match   http://example2.com
    //@grant   GM_getValue
    //@grant   GM_setValue
    
    if (location.href.indexOf('http://example1.com') == 0) {
        GM_setValue('id', Date.now() + '\n' + document.getElementById("myId").textContent);
        window.open("http://example2.com","_self");
    } else if (location.href.indexOf('http://example2.com') == 0) {
        var ID = GM_getValue('id', '');
        if (ID && Date.now() - ID.split('\n')[0] < 10*1000) {
            ID = ID.split('\n')[1];
            .............. use the ID
        }
    }
    
    • This is a simplified example. In the real code you may want to use location.host or location.origin or match location.href with regexp depending on what the real urls are.
    • To pass complex objects serialize them:

      GM_setValue('test', JSON.stringify({a:1, b:2, c:"test"}));
      

      try { var obj = JSON.parse(GM_getValue('test')); }
      catch(e) { console.error(e) }
      
    0 讨论(0)
提交回复
热议问题