이전에 아약스 호출에서로드 된 PHP 페이지에서 자바 스크립트 코드를 실행하는 방법은 무엇입니까?자바 스크립트가 아약스와 함께 실행되지 않았습니다
코드 샘플 : 나는 selectQuest.php에서 질문을 선택하고 showRecord라는 페이지를 요청 아약스를 사용하고 있습니다 : 아약스 + 기능 parseScript는 아약스 요청 된 페이지
Senario에서 실행되는 자바 스크립트를 강제로 .php.
showRecord.php는 선택한 쿼리에 해당하는 정보가 들어있는 테이블을 표시합니다. 실행되지 않는 javascript가 포함되어 있습니다. 자바 스크립트를 반환하면 submit을 클릭 할 때 db의 정보를 업데이트 할 수 있습니다.
아래 코드 샘플은 showRecord.php에서 찾을 수 있습니다. 마지막으로 showRecord를 실행하면 updateQuestion.php에 대한 또 다른 Ajax 요청이 만들어집니다.
그러나 자바 스크립트 showRecord.php
function show(fileTex,aTex,bTex,cTex,dTex,eTex,newQuestNumTex,textAreaTex,textQuesAnsTex)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
var resp=xmlhttp.responseText;
document.getElementById("txtHint2").innerHTML=resp;
parseScript(resp);
// document.getElementById("txtHint").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("POST","updateQuestionAdmin.php?param="+fileTex+"&text_A="+aTex+"&text_B="+bTex+"&text_C="+cTex+"&text_D="+dTex+"&text_E="+eTex+"&text_ID="+newQuestNumTex+"&text_Ques="+textAreaTex+"&text_Ans="+textQuesAnsTex,true);
xmlhttp.send();
}
// this function create an Array that contains the JS code of every <script> tag in parameter
// then apply the eval() to execute the code in every script collected
function parseScript(strcode) {
var scripts = new Array(); // Array which will store the script's code
// Strip out tags
while(strcode.indexOf("<script") > -1 || strcode.indexOf("</script") > -1) {
var s = strcode.indexOf("<script");
var s_e = strcode.indexOf(">", s);
var e = strcode.indexOf("</script", s);
var e_e = strcode.indexOf(">", e);
// Add to scripts array
scripts.push(strcode.substring(s_e+1, e));
// Strip from strcode
strcode = strcode.substring(0, s) + strcode.substring(e_e+1);
}
// Loop through every script collected and eval it
for(var i=0; i<scripts.length; i++) {
try {
eval(scripts[i]);
}
catch(ex) {
// do what you want here when a script fails
}
}
}
</script>
난 강력하게 자바 스크립트를 사용하는 것이 좋습니다 AJAX 요청을하기 위해 jQuery 또는 Dojo와 같은 프레임 워크; 네가 여기있는 것보다 훨씬 좋을거야. – q3d
아약스가 요청한 페이지에서 javascript를 강제로 실행하는 방법을 알고 싶습니다. ??? –
'updateQuestionAdmin.php'에서 어떤 스크립트가 반환됩니까? 브라우저의 디버깅 도구로 JavaScript 코드를 단계별로 실행 해 보았습니까? 거기에있을 것으로 예상되는 스크립트로'eval' 문에 도달합니까? –