【问题标题】:JavaScript script tag in a JavaScript StringJavaScript 字符串中的 JavaScript 脚本标记
【发布时间】:2012-09-07 01:08:12
【问题描述】:

我也有同样的问题:

Script tag in JavaScript string

但是,我无法通过建议的解决方案解决问题。我正在为 jquery 使用数据表插件。我从上面的线程尝试了不同的解决方案,但没有一个工作。我收到“$ 未定义”错误。如果我将 var html 设置为喜欢“测试”,它可以正常工作。 字符串中的脚本插入 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() 函数去除脚本标签。我在 cmets 中发现 .html() 的文档。

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

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

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

【问题讨论】:

    标签: javascript string script-tag


    【解决方案1】:

    该错误与您尝试注入

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

    也有可能您使用了@987654321@,导致 $ 不再引用 jQuery。另一种可能性是在包含 jQuery 和这段代码之间有代码将 $ 重新定义为 undefined:

    $ = undefined;
    

    【讨论】:

    • 首先加载Jquery。如果我注释掉'var html'并写$('td:eq(0)', nRow).html('test');它工作正常。我也不使用 jquery.noconflict 或 $ = undefined。我怎样才能重新定义 $?
    【解决方案2】:

    试试这个在 Firefox 中是成功的

    var scr="cd_insertObject('chemical/x-cdx',600,400,'rxncdxd','cdxfile.cdx',true,true)";
    $('#deneme').html(eval(scr));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 2012-06-19
      相关资源
      最近更新 更多