使用innerHTML進行頁面部分替換對復雜交互很有效。
不過有個地方要注意
.innerHTML里帶的script不會起作用
為調試方便起見,可以先對innerHTML進行單獨調試,調通后將其中的javascript拷貝到主頁面。innerHTML中的script也不用刪除。
.javascript報錯可能只針對innerHTML里的行數。
評論
原來還是有辦法解決的,參照下面的代碼:
function _xml_htmlInsert(partId, viewData) {
var regexp1 = /<script(.|\n)*?>(.|\n|\r\n)*?<\/script>/ig;
var regexp2 = /<script(.|\n)*?>((.|\n|\r\n)*)?<\/script>/im;
/* draw the html first */
partId.innerHTML = viewData.replace(regexp1, "");
var result = viewData.match(regexp1);
if (result) {
for (var i = 0; i < result.length; i++) {
var realScript = result[i].match(regexp2);
_xml_executeScript(realScript[2], partId);
/* Note: do not try to write more than one <script> in your view.*/
/* break; process only one script element */
}
}
} 回復 更多評論
function _xml_htmlInsert(partId, viewData) {
var regexp1 = /<script(.|\n)*?>(.|\n|\r\n)*?<\/script>/ig;
var regexp2 = /<script(.|\n)*?>((.|\n|\r\n)*)?<\/script>/im;
/* draw the html first */
partId.innerHTML = viewData.replace(regexp1, "");
var result = viewData.match(regexp1);
if (result) {
for (var i = 0; i < result.length; i++) {
var realScript = result[i].match(regexp2);
_xml_executeScript(realScript[2], partId);
/* Note: do not try to write more than one <script> in your view.*/
/* break; process only one script element */
}
}
} 回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
![]() |
||
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||