0

とても簡単です。Adobe AIR アプリケーションのメイン ウィンドウは html ファイルで、application.xml は次のようになります。

  <initialWindow>
    <title>window title</title>
    <content>index.html</content>

index.html は次のようになります。

<script type="text/javascript" 
    src="http://www.mysite.com/mybanner.js" id="add"></script>
<script type="text/javascript">
    document.write("<h1>this is strange</h1>");
    alert(document.getElementById("add").src);
    function getJS(){
        document.getElementById("add").src="http://www.mysite.com/mybanner.js";
        xmlhttp = new XMLHttpRequest(); 
        xmlhttp.open("GET", "http://www.mysite.com/mybanner.js"
            ,false);
        xmlhttp.send(null);
        if (xmlhttp.status === 200) {
            alert(xmlhttp.responseText);
        eval(xmlhttp.responseText);

        }else{
            throw("Can't open url, response status is:"+xmlhttp.status);
        }
    }
</script>
<input type="button" onclick="getJS();" value="getJS" />

アプリを開くと、「これはおかしい」と表示され、他のスクリプト タグ (バナー) のソースを警告しますが、何も表示されません。getJS ボタンをクリックすると、js ファイルの内容が警告されますが、まだ何も表示されません。eval により、AIR ランタイムのセキュリティ違反が発生します。ファイルを Internet Explorer または Firefox で開くとバナーが表示されるので、スクリプトまたは src にエラーはありません。

flashDevelop で実行しましたが、出力に警告やエラーは表示されず、xmlhttprequest を使用して任意のサイトに接続できます (通常はブラウザーでは許可されません) が、サーバーから単純な js ファイルを読み込めません。

誰でもこれを解決するのを手伝ってもらえますか?

4

1 に答える 1

0

スクリプトのソースがローカルでない場合、document.write は機能しないと思います。

于 2013-01-21T11:14:00.933 に答える