URLからjQueryに返されるJavaScriptがあります。このJavaScriptにはdocument.write(...)ステートメントがあります。私はリンクをクリックして、の出力をdocument.write(...)コマンドのをのdivに挿入したいと考えています。JavaScript出力が画面を越え、jQuery経由でコンテナ要素にロードされない
JavaScriptのevalを試してみるために、JavaScriptのevalを使用して、指定したurlソースのdivにスクリプトタグを挿入して、すべて(jQuery load()、getScript()、get()、ajax JavaScriptの書き込み(...)コマンドの最終結果)、私が何をしても、画面全体が引き継がれ(白抜き/白くなる)、JavaScriptの出力はのものしか画面に表示されず、そのコンテンツの代わりにちょうどdivに終わる。
これがなぜ起こっているのか、なぜそれがコンテナ要素にロードされないのかについてのアイデアはありますか?
もう1つ重要な詳細です。 HTMLのスクリプトタグでurlを使用すると、divにコンテンツの詳細が読み込まれます。
???
ここはdiv要素の中に生成されたJavaScriptをロードする私の現在のビューのコードは、代わりの出力のうち、JavaScriptは言った:
$(function($) {
$('#update_preview').click(function() {
event.preventDefault();
$('#preview').load('<%= url_for :controller => 'items', :action => 'preview', :id => @cf.id, :only_path => false %>');
})
})
});
には、目的の機能に最も近いコード例が追加されています。問題は、javascriptをHTMLの文字列として評価して#preview divに配置する必要がありますが、代わりにブラウザウィンドウ全体を書き換えるだけです。 – sands
つまり、返されたJavaScriptに対してeval()を使用しようとすると、画面全体を引き継ぎます。 JavaScriptを評価しないソリューションは私のJSコードを返します(例:var txt = "some txt"; document.write(txt);) – sands
まあ、私はdocument.write(...)ページの読み込み後には機能しないため、この方法が機能していないという理由があります。しかし、これは私がページに埋め込みウィジェットとしてコンテンツを読み込むために使用するメソッドなので、両方の状況で動作する代替は何ですか? – sands