如何解决JavaScript字符串中的JavaScript脚本标签
| 我和这里有同样的问题: JavaScript字符串中的脚本标签 但是,我无法通过建议的解决方案解决该问题。我正在将datatables插件用于jquery。我从上面的线程尝试了不同的解决方案,但是没有用。我收到“未定义$”错误。如果将var html设置为“ test”,则可以正常工作。 字符串中的脚本会插入ActiveX控件(IE)或插件(FF),并显示数据库中的数据。 在下面的代码中,var html以某种方式破坏了脚本:function( nRow,aData,iDisplayIndex,iDisplayIndexFull ) {
var dataURL = \"\'data:chemical/smiles,\" + aData[0] + \"\'\";
var html = \'<script type=\"text/javascript\">\'
+ \'cd_insertObject(\"chemical/x-daylight-smiles\",182,172,\'
+ \'\"CDCtrl\' + iDisplayIndexFull + \'\",\"\",\"True\",\"False\",\'
+ \'dataurl=\'+ dataURL + \');</scr\' + \'ipt>\';
$(\'td:eq(0)\',nRow).html(html); // here $ causes an error
return nRow;
}
请注意,我也尝试在开始脚本标记中转义所有<和>。同样的问题。
有什么想法怎么解决?
编辑:
找到了解决方案,但无法回答我自己的问题,所以这里是:
jQuerys .html()函数剥离脚本标记。我在注释中发现了.html()的文档。
另一个问题是第三方函数cd_insertObject使用document.write()。
我的解决方案是复制+粘贴cd_insertObject,但是我没有使用文档写,而是返回了一个字符串,然后将该字符串放入
$(\'td:eq(0)\',nRow).html(html);
解决方法
该错误与您尝试注入