5

一般的な質問

のような単純な ajax リクエストがあるとし$("#container").load('/url #content');ます。ロードされたDOMは次のようになります

<a>email</a>
<script>/* some script */</script>

実行するスクリプト タグの内容を取得するにはどうすればよいですか?

特定の質問

[email protected]Cloudflare は、DOM 内の電子メール アドレスを自動的に保護するために、テキストをそれを解読するスクリプトに置き換えて含めます。ただし、コンテンツは非同期でロードでき、解読を行うスクリプトは実行されません。メール保護機能をオフにすることもできますが (私はそう思います)、これを回避する別の方法があるかどうか疑問に思っています。

http://aysites.com/whatで実際の動作を確認してください。[お問い合わせ] をクリックしてください。

4

3 に答える 3

3

私の答えには、トゥーラジの魔法も含まれています。

基本的に、同じロード関数を使用し、コールバックでスクリプトを取得し、その中から関数を取得して、それらを評価します。

$("#container").load('/url #content', function(){
  eval($('#container script').html()); 
});

上記のセレクターを使用して、そのセレクター (たまたまスクリプト内の関数) から HTML を取得すると、evalその関数を実行できます。

これは動作中の jsFiddle です。

于 2012-07-11T05:52:15.287 に答える
3

JavaScript コンパイラを呼び出す純粋な js 関数があります。ですeval。あなたはそれを使う必要があります。

例:

jQuery.globalEval("var newVar = true;")

jQuery.comで

または

eval("x=10;y=20;document.write(x*y)");
document.write("<br />" + eval("2+2"));
document.write("<br />" + eval(x+17));

w3schoolsで

于 2012-07-11T04:52:59.033 に答える
1

適切なヘッダーを持つページにスクリプト部分だけを配置し、スクリプト$.getScript()を取得して実行するために使用できます。

ドキュメントを参照してください: http://api.jquery.com/jQuery.getScript/

于 2012-07-11T04:58:55.573 に答える