PHP スクリプトに対して AJAX 要求を行う Web ページがあります。その PHP スクリプトは有効な JSON オブジェクトで応答し、Content-type
ヘッダーを に設定しapplication/json
ます。
JSON 形式は次のとおりです ( JSON 応答のconsole.log(JSON.stringify(data))
where で報告されているように)。data
{
"content": "<script type=\"text/javascript\">console.log(\"test\");</script>"
}
data
次に、「コンテンツ」のクラスで div を作成します (私の AJAX responseText JSON オブジェクトであることを思い出してください)。
var content = document.createElement("div");
content.setAttribute("class", "content");
content.innerHTML = data.content;
最後に、コンテンツ div をサイトの既存の div に追加します。
existingDiv.appendChild(content);
Google Chrome の開発者ツールのタブでソースを調べelements
ます。これは、実際の DOM ノードと単なるテキストをうまく示しているからです。スクリプト ブロックは DOM ノードとして表示されます。
残念ながら、スクリプトは実行されず、開発者ツール コンソールにconsole.log("test");
出力されません。test
これまでに見た唯一のオプションはeval()
、ペストのように避けようとしているものを使用することです。また、コンテンツにスクリプト ブロック以外のものが含まれている場合もあります。他の HTML マークアップも含めることができます。
私は何が欠けていますか?この動的に追加された Javascript のブロックを実行するにはどうすればよいですか?
jQuery ソリューションは許容されます。