とても簡単です。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 ファイルを読み込めません。
誰でもこれを解決するのを手伝ってもらえますか?