让innerHTML中的script执行
row.cells[5].innerHTML = "<span style='display:none'>none</span><script defer='defer'>alert('OK!');<\/script>";
注:
(1)script只会在第一遍加载的时候被执行,需要加上defer属性(只有IE可以)。
(2)IE会忽略开头是脚步的问题,所以要加上一行空代码。
(3)defer属性会让脚本在全部加载完成后执行,所以脚本中不能有document.write,不然会写掉整个页面。
(4)硕正中的很多方法都用到了document.write,所以在innerHTML中写入硕正的方法是很危险的。例如下列方法
function insertTreeList(id, para) { document.write( bldStr("BCV1.TreeList",id, para) ) } function insertEdit(id, para) { document.write( bldStr("BCV1.Edit", id, para) ) } function insertReport(id, para) { document.write( bldStr("LuxForm", id, para) ) } function insertTree(id, para) { document.write( bldStr("BCV1.Tree", id, para) ) } function insertFreeForm(id, para) { document.write( bldStr("BCV1.FreeForm",id, para) ) } function insertChart(id, para) { document.write( bldStr("BCV1.Chart", id, para) ) } function insertUpload(id, para) { document.write( bldStr("BCV1.Upload", id, para) ) } function insertFormDesigner(id, para) { document.write( bldStr("BCV4.FormDesigner",id, para) ) }