evalが無効になっているときに文字列のJavaScriptコードを解析する方法

同僚が今日私に尋ねました:「文字列のjavascriptコードを解析する方法は?」
「eval()」
「私たちのプロジェクトはevalを無効にします...」
「CaoMengdeの名前」



javascriptコードの文字列を解析する必要性は一般的ではないため、この要件について初めて頭に浮かぶ方法はeval()です
が、ネットワークセキュリティのさまざまな理由から、多くのプロジェクトではこの方法を避けています。

したがって、evalが無効になっている場合、文字列のjavascriptコードを解析する
方法はスクリプトタグを挿入するというトリッキーな方法です。

function fun(a) {
    
    
	console.log(a);
};

// eval('fun("some data")')

var new_element = document.createElement('script');
new_element.innerHTML = 'fun("some data")';
document.body.appendChild(new_element);
document.body.removeChild(new_element);

デモでスクリプト要素を作成し、要素で解析するjavascriptコードを記述し、要素をドキュメントに挿入し、解析後に要素を削除します

ここで解析されるJavaScriptコードは関数呼び出しであるため、挿入が完了し、実行が完了します。このメソッドを合理的に使用すると、値の転送の効果も得られます。



参照:AJAX-LiaoXuefengの公式ウェブサイト

終わり

おすすめ

転載: blog.csdn.net/u013970232/article/details/110392374