簡體   English   中英

JavaScript 字符串中的 JavaScript 腳本標記

[英]JavaScript script tag in a JavaScript String

我和這里有同樣的問題:

JavaScript 字符串中的腳本標記

但是,我無法使用建議的解決方案解決問題。 我正在為 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() function 去除腳本標簽。 我在評論中發現了 for.html() 的文檔。

另一個問題是第 3 方 function cd_insertObject 使用了 document.write()。

我的解決方案是復制+粘貼 cd_insertObject 但不是使用文檔寫入,而是返回一個字符串,然后我將這個字符串放入

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

試試這個在 Firefox 中成功的

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

該錯誤與您嘗試注入 <script> 標記無關。 錯誤“$ is not defined”的意思就是,“$”是未定義的,它不存在,因此你不能通過$()調用它

可能的原因是您在包含 jQuery 之前包含了此腳本,將 jQuery 腳本標簽移到加載此腳本以修復它的標簽上方。

您也可能使用jQuery.noConflict() ,導致 $ 不再指代 jQuery。 另一種可能性是在包括 jQuery 和此代碼之間有代碼將 $ 重新定義為未定義:

$ = undefined;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM