2011-09-12 25 views
0

現在、AJAXを使用してWebサイト上のオブジェクトを編集するためのフォームを読み込むプログラムを作成しています。私はLoading script tags via AJAXで同様の質問を見つけましたが、実際にはプログラムのニーズを満たしていません。AJAXスクリプトの読み込み

返されるajaxは、フォーム内の要素の事前定義されたセットです。特定の領域がTinyMCEテキストエリアと呼ばれると、それはテキストに組み込まれた一連のスクリプトタグを返します。

私の質問は、divに配置されたスクリプトタグを実行して実行できるかどうかです。

また、jQueryを任意の数のプラットフォームで実行できるため、jQueryの使用を避けたいと考えています。

+0

"さらに、jQueryを任意の数のプラットフォームで実行できるため、使用しないでください。これらのプラットフォームはどれですか? jQueryはJavaScriptで書かれています。 –

+0

まあ、jQueryを使わない場合は – topherg

答えて

1

はい、受信したhtmlとスクリプトをdomに追加し、domで任意のスクリプトタグを検索できます。スクリプトを評価して、必要に応じてすべてのjQueryスクリプトタグを無視することができます。

ただし、

この種の解決策は非常に脆い傾向があります。

Ajaxペイロードを別々のhtmlスクリプトとjavascriptスクリプトに変更する方がはるかに安定しています。そうすれば、Ajaxハンドラはそれらを分離することなく直接処理することができます。

を追加しました

日時:HTMLとJavaScript部品を返送する方法:あなたが別々のAjax呼び出しを行う、または両方の部分を含んでJSONオブジェクトを返すことができます。例:

{"js": "<the js part of the response>", 
"html": "<the html part of the respons>"} 

JSやHTMLの値のいずれかで任意の引用符や他のJSONの特殊文字をエスケープの問題の世話をするためにお使いのホストシステム上でjsonライブラリを使用してください。

htmlとjsの両方を一度に返すと、Ajax呼び出し(これは重要な可能性があります)が保存され、通常は2回の呼び出しに対してコードが単純化されます。

私はこの手法をプロダクションで使用しており、うまく機能します。

+0

私はこれをやろうと考えていました。別のajaxクエリでそれを作成しました。 – topherg

+0

@Chris、チェックありがとうございました。また、上記の回答の追加を参照してください。 –

1

あなたはajaxからjsスクリプトを返して実行したいのですか?もしそうなら、eval関数を使うことができます。

+1

です。フォーム要素のリストが文字列としてあり、その一部がスクリプトです。これまでのところ、スクリプト要素のテキストをスキャンし、Head領域に作成するようにしました。これまでのところ、それは働き始めています。私は、http://unixpapa.com/js/dyna.htmlを助けに使用しました。 – topherg

関連する問題