让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) ) }

 

 

posted @ 2013-02-22 13:52  吉布鑫  阅读(1958)  评论(0编辑  收藏  举报