저는 데스크톱 HTA 프로그램을 작성하려고합니다.hta-ajax 웹 서버에서 PHP 스크립트를 호출합니다.
그러나 시작시 웹 사이트에 1 개의 아약스 PHP 데이터베이스 호출을 만들어야 성공 요소 콜백이 필요합니다.
이것이 가능합니까? 크로스 브라우저 문제를 극복해야합니까? 방화벽으로 인해 문제가 발생합니까?
저는 데스크톱 HTA 프로그램을 작성하려고합니다.hta-ajax 웹 서버에서 PHP 스크립트를 호출합니다.
그러나 시작시 웹 사이트에 1 개의 아약스 PHP 데이터베이스 호출을 만들어야 성공 요소 콜백이 필요합니다.
이것이 가능합니까? 크로스 브라우저 문제를 극복해야합니까? 방화벽으로 인해 문제가 발생합니까?
가능 가능. 아래 코드를 참조하십시오. Crossbrowser는 HTA에는 적용되지 않습니다. 항상 IE 렌더링 엔진을 사용하고 있습니다. 하지만 당신은 HTA에 적용 할 수없는 도메인 간 문제를 의미 할 수도 있습니다. Microsoft는 HTA (HTML 응용 프로그램)가 웹 페이지가 아닌 응용 프로그램으로 처리되기 때문에 모든 Javascript 크로스 도메인 보호를 사용하지 않도록 선택했습니다.
방화벽에는 많은 고려 사항이 있지만 방화벽이 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>