2016-09-27 110 views
0

我運行的Greasemonkey腳本,這個網址:的Greasemonkey腳本閃光一次,每次載入網頁

// @include  https://www.younow.com* 
// @exclude  https://www.younow.com/steven73* 
// @grant  none 
// ==/UserScript== 
alert("HELLO"); 

我的問題是,我的劇本似乎是「禁用」的「內部」的導航,這意味着當我使用Firefox並且我加載的第一個站點是「steven73」頁面,並且在加載該頁面後,單擊其中一個「現在趨勢」拖放器(您可以在網站左上角看到它)我想要獲取郵箱,但msgbox不會不會出現,因爲當我第一次訪問「younow」網站時(僅F5),腳本僅執行「一次」。看起來「內部」導航阻止了腳本的執行。每次單擊「現在趨勢」拖放器(位於網站左上角)時,如何執行我的腳本?

回答

0

本網站使用AJAX方法更新頁面的各個部分,而無需重新加載它。
用戶腳本僅在初始頁面加載時自動執行。

添加監聽點擊事件並運行代碼暫停後:

document.addEventListener('click', function(e) { 
    var trendingLink = e.target.closest('a.trending_image'); 
    if (trendingLink) { 
     var stopTryingAt = Date.now() + 5000; 
     var interval = setInterval(function() { 
      if (document.querySelector('.player-main')) { 
       clearInterval(interval); 
       onPageUpdated(); 
      } 
      if (Date.now() >= stopTryingAt) { 
       clearInterval(interval); 
      } 
     }, 20); 
    } 
}); 

function onPageUpdated() { 
    console.log('Boo!'); 
} 

或者使用waitForKeyElements功能要等到一個元素出現,而不是使用的setInterval。

+0

我已經在縮略圖鏈接上測試了它,因此您可能需要更改'a.trending_image'選擇器。其實你可以簡單地使用'a'來捕捉所有鏈接點擊。 – wOxxOm

相關問題