2
如何使JavaScript代碼執行在以前從ajax調用加載的PHP頁面?JavaScript不執行與AJAX
代碼示例: AJAX +功能parseScript強制的JavaScript的AJAX請求的頁面
塞納里奧上運行:我選擇從selectQuest.php一個問題,使用AJAX請求它被稱爲showRecord頁.PHP。
頁面showRecord.php將顯示一個表,其中包含與所選quesion相對應的信息。它包含不運行的javascript。當我單擊提交時,javascript返回將允許我更新db中的信息。
下面的代碼示例可在showRecord.php中找到。最後,如果後者運行showRecord,則會爲updateQuestion.php發出另一個Ajax請求。
但JavaScript是不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>
我會強烈建議使用一個Javascript框架(如jQuery或Dojo)發出AJAX請求;它會比你在這裏有更好的地獄。 – q3d
iyrag任何想法如何強制JavaScript在ajax請求的頁面上執行??? –
'updateQuestionAdmin.php'返回哪個腳本?您是否嘗試使用瀏覽器的調試工具瀏覽JavaScript代碼?它是否會與您期望在那裏的腳本達成'eval'聲明? –