2017-02-17 2 views
0

у меня есть страница, которая имеет .js скрипта внутри, на странице егоИзменение переменной JavaScript с Greasemonkey на время работы

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

в этом scratchticket.js

имеет следующий код

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

поэтому я тестирую различные коды в greasemonkey, но я не могу редактировать эту переменную, например, 200

i testet, чтобы заблокировать scratchticket.js с помощью adblock, вставить весь код в скрипт greasemonke и изменить var, но он не работает, я не знаю, почему на странице написана загрузка ... в то время, когда она должна сделайте код.

любая идея, как изменить переменную другим способом?

ответ

1

Проблема в том, что ответ Клона Квазимодо выше абсолютно ошибочен, когда он выполняется, и это наоборот.

Цитирую вики он цитирует:

документ конец стандартное поведение, что Greasemonkey всегда было (см DOMContentLoaded). Это значение по умолчанию, если значение не указано.

Итак, ваша проблема, вероятно, является общим для тех, начиная с userscripts, в том, что ваш скрипт выполняется слишком поздно (конец), и вам просто нужно добавить эту директиву в верхней части:

// @run-at  document-start 

Попробуйте это и посмотрите, поможет ли это!

0

Для получения соответствующих ответов вам необходимо предоставить дополнительную информацию и код. Важно знать , когда работает с пользовательскими правами, и если есть какие-либо гранты.

Если вы хотите изменить исходное значение кода JS, рассмотрите возможность прослушивания события beforescriptexecute. При стрельбе вам нужно сначала указать, является ли цель события сценарием, который вы ищете. Затем вы можете искать и заменять нужную строку JavaScript. Вы должны отменить выполнение исходного сценария и вставить измененный код в новый тег <script> в DOM, так как вы не можете напрямую манипулировать загруженными сценариями.

+0

код находится внутри рамки, что открывается, когда я нажимаю ссылку. – chwzr

+0

Сценарии GM по умолчанию '@ run-at document-start' (см. Официальный сайт https://wiki.greasespot.net/Metadata_block, в настоящее время, по-видимому, вниз). Это происходит до любого выполнения сайта, поэтому вы можете использовать описанный выше метод. GM также по умолчанию запускает usercript в фреймах. –