5

我正在使用从后端代码获取 HTML 内容的 jquery ajax 请求。如果状态正常,我将 HTML 内容附加到 div。我正在使用以下代码使用 jquery ajax 附加 div。作为$('#divElm').html(response.data);. 但附加后我收到以下错误:

SyntaxError:复合语句中缺少 }

从后端(即 response.data)呈现的 HTML 内容包含导致此错误的以下内容:

<script type="text/javascript"> 
function init() {
if(d.getElementById('normal')){
    window.normalPop= d.getElementById('normal');
    //complicated is local 
    var complicated= normalPop.parentNode.removeChild(normal);
    d.getElementsByTagName('body')[0].appendChild(complicated);
    }
}   
addLoadEvent(init);
</script>

我不确定为什么会出现这个错误“SyntaxError: missing } in complex statement”。} 大括号在代码中正确关闭。

如果我使用它innerHTML而不是html()它工作正常。渲染没有错误。

4

1 回答 1

2

.html() 使用 .append() ,而 .append() 又使用 domManip() 进行脚本嗅探和执行。由于这个原因,来自后端的脚本代码执行并导致此错误“SyntaxError:复合语句中缺少}”。我通过脚本代码进行了调查,脚本代码中的注释行(//)也注释了一些JS代码。因此,将单行(//)更改为多行注释(/** **/)后。它得到固定。谢谢大家的时间。

于 2013-02-04T10:41:18.423 回答