2016-07-08 4 views
-1

я в новичку для JS/Greasemonkey и иметь некоторые трудности отладки скрипта:Слишком много ошибок рекурсии с использованием checkForBadJavascripts()

NB: Скрипт разбора HTML сайта, найдите тег и изменения SCRIPT содержимое сценария перед его запуском.

// ==UserScript== 
// @name  JustPaste.it CheckForBadScript 
// @namespace Mkhoul 
// @description Test 01 
// @include  https://justpaste.it/* 
// @version  1 
// @require https://greasyfork.org/scripts/12317-checkforbadjavascripts-js/code/checkForBadJavascriptsjs.js?version=73234 
// @run-at document-start 
// @grant GM_addStyle 
// ==/UserScript== 


/*- The @grant directive is needed to work around a design change 
    introduced in GM 1.0. It restores the sandbox. MIKE MIKE MIKE 
*/ 

function replaceTargetJavascript (scriptNode) { 
    var scriptSrc = scriptNode.textContent; 
    scriptSrc  = scriptSrc.replace (
     "meta,script,object,applet,iframe,option,embed,span[size|face],pre,font[style|face],h2[style],h1[style],h3[style],h[style],input,textarea,submit", 

     "dummyoption" 
    ); 

    addJS_Node (scriptSrc); 
} 

checkForBadJavascripts ([ 
    [false, /invalid_elements/, replaceTargetJavascript] 
]); 

Он бросай меня в консоли: "слишком много рекурсии"

http://i.imgur.com/x6rj73t.png

Затем указывают: https://greasyfork.org/scripts/12317-checkforbadjavascripts-js/code/checkForBadJavascriptsjs.js файл

http://i.imgur.com/F9agQMT.png

.

Последняя ошибка "ReferenceError: initTinyMCE не определен", похоже, вызвано из-за первых 2 ошибок.

`

Отсюда: How to alter this javascript with Greasemonkey? все должно работать нормально в сценарии.

Я не понимаю, почему у меня есть эти ошибки «слишком много рекурсии»?

ответ

0

checkForBadJavascripts добавляет слушатель событий beforescriptexecute, который реагирует на любой элемент сценария, добавляемое, в том числе добавлять с addJS_node в то время как проверка выполняется. Вот почему рекурсия бесконечна.

Чтобы решить эту проблему, необходимо сначала убедиться, что скрипт содержит оскорбительный текст, используя, например, indexOf. Только в этом случае замените его и добавьте скрипт с addJS_Node.

Смежные вопросы