0

オブジェクトを作成するために評価するjson文字列として、htmlタグの内容で応答するajax関数があります。

これで、json 文字列に JavaScript が含まれていない限り、問題なく動作します。しかし、文字列内にいくつかの単純な JavaScript を含めると、文字列を評価しようとすると取得されますが、すべてと.Uncaught SyntaxError: Unexpected identifierをエスケープします。'"

サンプルは次のとおりです。http://jsfiddle.net/dCtA3/2/

javascript を削除すると: http://jsfiddle.net/dCtA3/3/動作します。

4

2 に答える 2

2

適切な JSON を使用して試してください (XHR が JSON を返す場合は、それを使用して解析するか、ブラウザーがまだ解析していないかどうかを確認してください ( [response].innerhtml))。jsfiddle コードを次のように変更します。

var contents = JSON.stringify(
  {innerhtml : "<p onclick=\"javascript:alert('hello world');\"> click me! </p>"}
);

function insertContent() {
    document.getElementById("container")
        .innerHTML = JSON.parse(contents).innerhtml;
}​

[コメントに基づいて編集]ボタンのクリックでjsonリクエストがシミュレートされるこのjsfiddle
を参照してください。ボタンをクリックすると、文字列化された応答オブジェクトが表示されます。

于 2012-09-02T09:24:15.580 に答える
0

JavaScriptコードを生成する必要がありますか?それはその文字列に含まれている必要がありますか? JavaScript を js ファイルに含めることができる場合は、これを簡単に行うことができます: アラートを実行する関数 helloWorld を作成し、json 文字列で html hance onclick="helloworld()" を使用します。

于 2012-09-02T09:07:57.913 に答える