0
假設我有這樣的代碼:更換Javascript代碼並運行它
my_script_data = document.getElementById("id_php_defer__core");
if (my_script_data == undefined) {
Alert(request.responseText); // all looks good!
my_script_data = document.createElement("script");
my_script_data.setAttribute("id", "id_php_defer__core");
my_script_data.innerHTML = 'function myinitfunc() { ' + "\n" + request.responseText + "\n" + ' }';
to = document.head;
if (to != undefined) {
to.appendChild(my_script_data);
}
}
else {
Alert(request.responseText); // all looks good!
my_script_data.innerHTML = 'function myinitfunc() { ' + "\n" + request.responseText + "\n" + ' }';
eval(my_script_data.innerHTML);
}
的「request.responseText」實際上是一個Javascript數組聲明與許多設定值。
上面的代碼之後,稍後調用「myinitfunc」。
(正如它應該只包含「request.responseText」全球(!)值的數組應該進行更新。)
然而,當代碼工作第一次運行,後續運行似乎什麼都不做,所以我做錯了什麼,但是什麼? :)
本來我插入新的
你每次調用myinitfunc()時都試過eval()嗎?
來源
2012-03-03 20:00:28 multimediaxp
由於從看到的例子,我EVAL檢索響應文本時。你是否建議我嘗試innerHTML = eval(...)? – Tom 2012-03-03 20:29:11
我其實並沒有嘗試你的代碼,但在我看來,它只是第一次工作,因爲你實際上評估過一次表達式,但每次之後它只是函數內的一些隨機文本而沒有任何意義。對不起,我的回答可能完全不正確,但是我頭腦中的第一件事就是。 – multimediaxp 2012-03-03 20:34:35