1

我正在考虑编写一个桌面 HTA 程序。

但是,在启动时,我需要对网站进行 1 次 ajax php 数据库调用,这需要成功元素回调。

这可能吗?我需要克服任何跨浏览器问题吗?防火墙会导致任何问题吗?

4

1 回答 1

1

可能——是的。请参阅下面的代码。Crossbrowser 在 HTA 中不适用——您总是使用 IE 渲染引擎。但是我认为您可能是指跨域问题,这在 HTA 中也不适用。Microsoft 选择禁用所有 Javascript 跨域保护,因为 HTA(HTML 应用程序)被视为应用程序而不是网页。

防火墙有很多考虑因素,但防火墙不太可能比 HTML AJAX 更严格地阻止 HTA AJAX 调用。如果你有一个调用你的 PHP 页面的网页,它可能也可以在 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 回答