2017-02-17 66 views
0

改變與Greasemonkey的一個javascript變量i在頁面有一個頁面,裏面有一個.js腳本, 其在運行時間

<script> 
     Client.includeJS(
      'js/scratchticket.js' 
     ); 
    </script> 
在此

scratchticket.js

被下面的代碼

$(document).ready(function() { 
     ... 
     var xxx = 100;  
     ... 
    }); 

所以我testet在greasemonkey各種代碼,但我不能編輯這個變量,它是例如200

我試着用adblock來阻止scratchesicket.js將整個代碼粘貼到greasemonke腳本中,並更改var但它不工作,我不知道爲什麼頁面加載...在應該的時候做代碼。

任何想法如何以其他方式更改變量?

回答

1

問題是,上面的@Casimodo的克隆答案在執行時是絕對錯誤的,而它恰恰相​​反。

引述他引用維基:

文件高端是標準行爲的Greasemonkey一直有(見DOMContentLoaded)。 如果未提供任何值,則這是默認值。

所以,您的問題可能是常見的一種對於那些userscripts起步的,在你的腳本執行爲時已晚(末端),你只需要在頂部加入這個指令:

// @run-at  document-start 

試試看看是否有幫助!

0

您需要提供更多信息和代碼才能獲得適當的答案。知道 userscript運行以及是否有任何授權很重要。

如果您只是想更改設置初始值的JS代碼,請考慮收聽beforescriptexecute事件。開火時,您首先要確定事件目標是否爲您正在查找的腳本。然後,您可以搜索並替換所需的JavaScript行。您必須取消原始腳本的執行,並將修改的代碼插入到DOM中,因爲您無法直接操作加載的腳本,所以請將新的<script>標記內的代碼插入到DOM中。

+0

代碼是在一個框架內,當我點擊一個鏈接時打開。 – chwzr

+0

GM腳本默認爲「@ run-at document-start」(請參閱​​官方網站https://wiki.greasespot.net/Metadata_block,目前顯然已停用)。這是在任何網站執行之前,所以你可以使用上面描述的方法。 GM也默認在幀中執行一個用戶腳本。 –