gpt4 book ai didi

JavaScript 字符串中的 JavaScript 脚本标记

转载 作者:行者123 更新时间:2023-11-30 10:49:45 25 4
gpt4 key购买 nike

我遇到了同样的问题:

Script tag in JavaScript string

但是我无法通过建议的解决方案解决问题。我正在使用 jquery 的数据表插件。我从上面的线程尝试了不同的解决方案,但都没有用。我收到“$ is not defined”错误。如果我将 var html 设置为 like“test”,它工作正常。String 中的脚本插入一个 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","True",'
+ 'dataurl='+ dataURL + ');</scr' + 'ipt>';

$('td:eq(0)', nRow).html(html); // here $ causes an error
return nRow;
}

请注意,我还尝试在开始脚本标记中转义所有 < 和 >。同样的问题。任何想法如何解决?

编辑:

找到解决方案但无法回答我自己的问题所以这里是:

jQuerys .html() 函数去除了脚本标签。我在评论中发现了 .html() 的文档。

另一个问题是第 3 方函数 cd_insertObject 使用 document.write()。

我的解决方案是复制+粘贴 cd_insertObject 但我没有使用文档写入,而是返回一个字符串,然后我将这个字符串放入

$('td:eq(0)', nRow).html(html);

最佳答案

该错误与您尝试注入(inject) <script> 标签无关。错误“$ is not defined”的意思就是,“$”是未定义的,它不存在,因此你不能通过$()调用它。

可能的原因是您在包含 jQuery 之前包含此脚本,将 jQuery 脚本标记移动到加载此脚本的标记上方以修复它。

也有可能你用过<a href="http://api.jquery.com/jQuery.noConflict/" rel="noreferrer noopener nofollow">jQuery.noConflict()</a> ,导致 $ 不再引用 jQuery。另一种可能性是在包含 jQuery 和这段代码之间有将 $ 重新定义为未定义的代码:

$ = undefined;

关于JavaScript 字符串中的 JavaScript 脚本标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com