0

以下のように、ページ(ajax.php)内のJavaScriptコード(forloop)を評価するときに、サーバー側でAJAXを使用してサーバーを呼び出しています。

<?php
if($part==1){
?>
    for(var i=0; i<5;i++){
        alert(i);
    }
<?php
}

Javascript ページ (ajax.js) でコールバックを使用すると、次のようになります。

xmlHttp.onreadystatechange=function(){
    if(xmlHttp.readyState==4){
        if(xmlHttp.status==200){
            if(xmlHttp.responseText!=''){       
                var sc = document.createElement('src');
                sc.innerHTML = xmlHttp.responseText;
                eval(sc.innerHTML);  // Error in first case (forloop in server)     
            }

        }
    }              
}

クロムでエラーが発生します:

SyntaxError: Unexpected token ;

ajax.php ではなく ajax.js ページに forloop コードを配置すると、次のようにすべて正常に動作します。

<?php
if($part==1){
?>
    execute();
<?php
}

この場合、ajax.js の execute() 関数の下では、すべて正常に動作します。

function execute(){
    for(var i=0; i<5;i++){
        alert(i);
    }
}

これが発生する理由と、このエラーを防ぐ方法を教えてください。

ご協力ありがとうございました!

4

1 に答える 1

0

問題が解決しました。問題は、document.createElement('script') の代わりに document.createElement('src') を使用してスクリプト要素を作成していたことです。ごめんなさい!

皆様本当にありがとうございました!

于 2013-11-03T22:32:21.250 に答える