2014-10-09 9 views
8

Greasemonkey komut dosyası için, sayfanın yüklenmesinden önce çalıştırılması gereken kodun bir parçası (@run-at document-start) ve belgenin yüklenmesinden sonra çalıştırılması gereken kodun başka bir parçası (@run-at document-end).
Bu mümkün mü? Nasıl bir @ run-at document-start AND @ run-at document-end'de çalıştırmak için bir Greasemonkey betiği nasıl edinilir?

  • sayfa yüklendiğinde komut çalışmasının

    • 1 kısım, belge komut çalışmasının
    • 2 bölüm Doğrusu bunun için jQuery kullanmamayı tercih

    hazırdır.

    onload olayını denedim ancak çalışmadı. Belgenin henüz orada olmaması durumunda etkinliğin eklenemeyeceğini düşünüyorum.

    window.document.onload = function(e){ 
        alert("document.onload"); 
    } 
    
  • cevap

    15

    İstediğiniz olay DOMContentLoaded. Ayrıca, bu load olayının nasıl kullanıldığı değildir.

    // ==UserScript== 
    // @name  _Show page start event timing 
    // @include  http://YOUR_SERVER.COM/YOUR_PATH/* 
    // @run-at  document-start 
    // ==/UserScript== 
    console.log ("==> Script start.", new Date()); 
    
    // 1ST PART OF SCRIPT RUN GOES HERE. 
    console.log ("==> 1st part of script run.", new Date()); 
    
    document.addEventListener ("DOMContentLoaded", DOM_ContentReady); 
    window.addEventListener ("load", pageFullyLoaded); 
    
    function DOM_ContentReady() { 
        // 2ND PART OF SCRIPT RUN GOES HERE. 
        // This is the equivalent of @run-at document-end 
        console.log ("==> 2nd part of script run.", new Date()); 
    } 
    
    function pageFullyLoaded() { 
        console.log ("==> Page is fully loaded, including images.", new Date()); 
    } 
    
    console.log ("==> Script end.", new Date()); 
    

    Tipik sonuçlar:

    "==> Script start."       2014-10-09T01:53:49.323Z 
    "==> 1st part of script run."     2014-10-09T01:53:49.323Z 
    "==> Script end."        2014-10-09T01:53:49.323Z 
    "==> 2nd part of script run."     2014-10-09T01:53:49.385Z 
    "==> Page is fully loaded, including images." 2014-10-09T01:53:49.487Z 
    
    İşte

    çeşitli ateşleme sürelerini gösteren tam bir senaryo
    İlgili konular