8

私がこの隠しフィールドを持っていることをサポートします:

<input type='hidden' id='handler' name='handler' value='5534882394' />

そして、jQueryAJAXを介してサーバーからHTMLフラグメントをフェッチすると想像してください。

<div id='result'>
    <span></span>
</div>

ただし、次のように書く代わりに:

$(function(){
   $('#result span').text($('#handler').val());
});

次のようなものを使用したいと思います:

<div id='result'>
    <span>javascript:$('#handler').val();</span>
</div>

しかし、意図した結果が得られません。このアプローチをJavaScriptで使用できますか?

更新:皆さんお願いします、私は知ってい$(document).ready();ます。したがって、より良い方法を提供しないでください。インラインJavaScriptを使用できるかどうかを知りたかっただけです。そうであれば、どのようにしたらよいでしょうか。

4

5 に答える 5

14

いいえ、Javascriptでそのアプローチを使用することはできません。インラインJavascriptのようなものはありません。

次のようなリンクに表示されるの<a href="javascript:alert(1)">は、javascript:プロトコルと同じように使用される疑似http:プロトコルです。ブラウザにそのようなURLを指定すると、ブラウザはスクリプトを実行します。

ページでスクリプトを実行する場合は、スクリプトタグが必要です。

于 2011-08-13T13:12:09.737 に答える
6

あなたができる-

<input type="text" id="handler" value="yes"/>
<div id='result'>
    <span>
       <script>document.write($('#handler').val());</script>
    </span>
</div>

また、ページがscriptタグにヒットすると、ページはJavascriptを実行します。ただし、「#handler」要素がすでにロードされていることを確認する必要があります。そうしないと、スクリプトが失敗します。

一般に、このようなスクリプトタグはマークアップから遠ざける方がよいでしょう。

作業デモ-http://jsfiddle.net/ipr101/h6zXs/

于 2011-08-13T13:07:45.280 に答える
6

タグは機能し、<script>あなたがやろうとしていることをあなたにさせるでしょうが、私は本当にそこであなたのデザインを再考することを提案します。これは、「控えめなJavascript」と直接呼ばれるものではありません。

なぜHTMLとJSを組み合わせるのが好きなのですか?好奇心のためなら-OKですが、これが本番コードに変換することを目的としている場合は、2つをできるだけ分離することをお勧めします。最終的には、はるかに優れた保守性が得られます。

于 2011-08-13T13:11:00.590 に答える
3

タグを忘れまし<script>か?

<div id="result"></div>
<script>$('#result').text($('#handler').val();</script>
于 2011-08-13T13:05:45.543 に答える
2

数年前、私はまさにその問題を抱えていました。私はAJAXを使用してHTMLを取得していましたが、そのHTMLにはJavascriptが埋め込まれていました。HTMLを手動で解析してJavascriptタグを掘り起こし、evalそのコンテンツを呼び出すよりも良い解決策を見つけることはできませんでした。ハッキーで信頼性が低いですが、それは私が見つけた最高のものでした。

于 2011-08-13T14:27:06.643 に答える