2016-04-13 28 views

cevap

0

yardım lütfen ama Greasemonkey aslında javascript kullanıyor. Sayfanızda "başlık" elementi olduğunu varsayalım ve bunu "kafa" elemanının içinde tek bir eleman olarak görmek istersiniz.

JavaScript aşağıdaki bunu başarabilirsiniz O:

var e = '<script src="script.js" type="text/javascript" language="javaScript"></script>'; 
document.head.innerHTML += e; 

DÜZENLEME: Sadece eklemek artı ikinci komuta eşittir işareti Infront giriş yapabilirsiniz

amacıyla
var e = '<script src="script.js" type="text/javascript" language="javaScript"></script>'; 
document.head.innerHTML = e; 

ekler için: Sonuç olarak, bu kaynak javascript dosyasına işaret eden tek script öğeniz varsa, bunu öğeyi tanımlamak ve özellik değerini doğrudan değiştirmek için de kullanabilirsiniz:

document.querySelectorAll('script[src="script.js"]')[0].setAttribute('src','demo.js'); 
2

Komut dosyanızı önceden @run-at document-start numaralı telefondan çalıştırın. Bir olay dinleyicisi beforescriptexecute ekleyin ve komut dosyasını kontrol edin. İstenen komut dosyasını bulduğunuzda, olayın preventDefault yöntemini arayın ve betik etiketini DOM'de değiştirin.

// ==UserScript== 
// @name  demo-scriptreplace 
// @include  http://example.com/* 
// @version  1 
// @run-at  document-start 
// ==/UserScript== 

window.addEventListener('beforescriptexecute', 
    function(event) 
    { 
    var originalScript = event.target; 

    // debug output of full qualified script url 
    console.log('script detected:', originalScript.src); 

    // script ends with 'originalscript.js' ? 
    // you can test as well: '<full qualified url>' === originalScript.src 
    if(/\/originalscript\.js$/.test(originalScript.src)) 
    { 
     var replacementScript = document.createElement('script'); 
     replacementScript.src = 'replacementscript.js'; 

     originalScript.parentNode.replaceChild(replacementScript, originalScript); 

     // prevent execution of the original script 
     event.preventDefault(); 
    } 
    } 
); 
İlgili konular