2011-10-23 39 views
0

我正在嘗試創建一個Chrome擴展,它將刪除/阻止/隱藏一段JavaScript,以便在訪問特定網站時不會加載。有問題的代碼是在這裏:如何在頁面加載之前替換javascript節點

<script type="text/javascript"> 
var _0xd6Bh=["\x74\x6F\x70","\x67\x74\x74\x50\x3A\x2F\x2F\x76\x69\x64\x65\x6F\x2E\x73\x77\x61\x67\x62\x75\x63\x6B\x73\x2E\x63\x6F\x6D\x2F\x62\x6C\x6F\x62\x6B\x2E\xv8\x74\x6D\x6C"];if(window[_0xd6Bh[0]]!=window){location=_0xd6Bh[1];} ; 
</script> 

我不知道這是正確的做法,但這裏是我的代碼:

document.write(string.replace(/var _0xd6Bh\=\[\".*/g, XXX)); 

這樣的想法是之前與XXX更換的javascript頁面加載並最終阻止它執行。到目前爲止,這不起作用,頁面繼續我做錯了什麼?

回答

1

如果腳本標籤在頭部,下面的代碼應該讓你在正確的軌道上。如果它在體內,只需將document.head替換爲document.body即可。您在

var scripts = document.head.getElementsByTagName("script"); 
/* //Uncomment the code below if you want to add body script elements 
var bodyScripts = document.body.getElementsByTagName("script"); 
scripts.concat(bodyScripts); 
*/ 
var replaceWithThis = "var _0xd6Bh = '';"; 
for(var i=0, l=scripts.length; i<l; i++) 
{ 
    scripts[i].innerHTML.replace(/^var _0xd6Bh.*/gi, replaceWithThis) 
} 
+0

在此行當然可以循環的'串replaceWithThis = 「變種_0xd6Bh = '';」;'我得到一個錯誤 – bammab

+0

對不起,應該是VAR:'VAR replaceWithThis =「變種_0xd6Bh = '' ;「;' – ima007

+0

我不確定它的工作權利。你可以在這裏測試http://jsbin.com/uvujam/3/edit – bammab

相關問題