2016-07-08 7 views
-1

私はGreasemonkeyのJS /への初心者だと、いくつかの困難このスクリプトのデバッグを持っている:多すぎる再帰エラー()

NB:スクリプトは、SCRIPTタグや変更を見つけ、サイトのHTMLを解析実行前のスクリプトの内容。

// ==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] 
]); 

それはコンソールで私を投げる:https://greasyfork.org/scripts/12317-checkforbadjavascripts-js/code/checkForBadJavascriptsjs.jsファイル

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

: "あまりにも多くの再帰"

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

を次にを指します。

最後のエラー"ReferenceError:initTinyMCEが定義されていません"は、最初の2つのエラーが原因であるようです。ここから

`

How to alter this javascript with Greasemonkey?すべてはスクリプトで正常に動作する必要があります。

2つの「再帰が多すぎます」というエラーはなぜ発生しませんか?

答えて

0

checkForBadJavascriptsチェックが実行されている間、あなたはaddJS_node を追加したものを含め、追加されている任意のスクリプト要素に反応するイベントリスナーbeforescriptexecuteを追加します。だから、再帰は無限です。

これを解決するには、まず、スクリプトにindexOfを使用して問題のテキストが含まれていることを確認する必要があります。その場合にのみ置き換えて、addJS_Nodeというスクリプトを追加してください。

関連する問題