2012-02-11 10 views
2

jQuery .globalEval() functionチェックjQuery.globalEvalを実行する前にはJavaScript(jQueryの)コードの構文()やeval()

私はjQuery.globalEval(varwithJScode)を使用します。

この問題は、varwithJScodeのコードに構文やその他のエラーが含まれている場合に発生します。スクリプト全体が停止します。

jsFiddleはjQuery.globalEval()をサポートしていませんが、シミュレートするために代わりにeval()を使用しました。

http://jsfiddle.net/55FfW/ var codeforevalを間違ったjavascriptコードに変更してください。次のコマンドは失敗します。

エラーの際に他のJSコードが停止しないようにする方法や、evalより前に構文をチェックする方法がありますか?

try { 
    jQuery.globalEval(jscode); 
} catch (e) { 
    if (e instanceof SyntaxError) { 
     alert('JS error!'); 
    } 
} 

が私のために動作しません:

は、このいずれかを使用してみました!

+0

jsfiddleはjQueryのをサポートし、あなただけ...左のjQueryライブラリを選択する –

+0

@DidierGhysを持っている:なぜ私はこれをしなかったと思いますか? –

+0

jsfiddle私はあなたのフィドル(http://jsfiddle.net/nnnnnn/55FfW/1/)を更新したり[このフィドル(http:// jsfiddle)を試しても問題なく、 '.globalEval()'を使ってみましょう。あなたがリンクしている他の質問からの受け入れられた回答から、あなたは/ net/KGXwX /これはtry/catchでも動作しました。http://jsfiddle.net/nnnnnn/55FfW/3/ – nnnnnn

答えて

1
  try { 
       jQuery.globalEval(data.js); 
      } catch(e) { 
       console.log(e); 
      } 
0

このような単純なことを行うには、重いjQueryは必要ありません。

変数にevalを割り当てて呼び出します。

try{ 
     var globalEval = eval; 
     globalEval(jscode); //execute in global scope 
    } catch(e) { 
     alert(e); 
    } 
関連する問題