我正在考虑编写一个桌面 HTA 程序。
但是,在启动时,我需要对网站进行 1 次 ajax php 数据库调用,这需要成功元素回调。
这可能吗?我需要克服任何跨浏览器问题吗?防火墙会导致任何问题吗?
可能——是的。请参阅下面的代码。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>