1

デスクトップ HTA プログラムを作成することを考えています。

ただし、起動時に、web サイトに対して 1 つの ajax php データベース呼び出しを行う必要があります。これには、success 要素のコールバックが必要です。

これは可能ですか?クロスブラウザの問題を克服する必要がありますか? ファイアウォールは何か問題を引き起こしますか?

4

1 に答える 1

1

可能 - はい。以下のコードを参照してください。クロスブラウザーは HTA では適用できません。常に IE レンダリング エンジンを使用しています。しかし、HTA にも当てはまらないクロスドメインの問題を意味していると思います。HTA (HTML アプリケーション) は Web ページではなくアプリケーションとして扱われるため、Microsoft はすべての Javascript クロスドメイン保護を無効にすることを選択しました。

ファイアウォールには多くの考慮事項がありますが、ファイアウォールが HTML AJAX よりも制限的に HTA AJAX 呼び出しをブロックする可能性は低いです。PHP ページを呼び出す Web ページがある場合、おそらく HTA でも機能します。幸運を!

<html><head>
<script language="javascript" type="text/javascript">
 var XHR = new ActiveXObject("Msxml2.XMLHTTP");
 function callAjax(url){
   XHR.onreadystatechange=(callback);
   txtStatus.value += "opening: " + url + "\n";
   XHR.open("GET",url,true); //"POST" also works
   XHR.send(); // XHR.send("name1=value1&name2=value2");
 }

 function callback(){
   if(XHR.readystate == 4) txtStatus.value += "DONE\n" + XHR.responseText;
 }
</script>
</head>
<body onload="callAjax(txtURL.value)">
  <textarea id=txtURL style="width:100%" rows=1>http://www.google.com</textarea>
  <textarea id=txtStatus style="width:100%" rows=20></textarea>
</body></html>
于 2012-06-11T20:56:31.943 に答える