Javascript 将 HTML 写入页面错误

Javascript writing HTML to page error

本文关键字:错误 HTML Javascript      更新时间:2023-09-26

我已经阅读了参数列表后所有关于"未捕获的语法错误:缺失")的SO帖子,但没有一个可以解决这个问题。我不明白出了什么问题。

我正在为数据库返回 JSON 并为每个结果编写 HTML。

function addRow(str, count) {
str = str.substr(0, str.length -5);
document.getElementById("comments").innerHTML += '<br /><br /><div  
class="input-group"><span class="input-group-btn"><button class="btn btn-success" 
onclick="javascript:del(' + "'" + str + "'" + ');" type="button">Delete</button></span><p class="form-control">'+str+'</p><span class="input-group-btn"><button onclick="javascript:publish('+str+');" class="btn btn-success" type="button">Publish</button>
</span></div>';
}

这是创建 HTML 的代码。

在单击"发布按钮"之前,我不会收到错误。所以我假设这段代码或发布函数有问题。

function publish(text) {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","http://example.com/test.php?type=upcom&text="+text,true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("comments").innerHTML = "";
            loadComment();
        }
    }
}

以上是发布方法。

任何人都可以发现任何会导致"未捕获的语法错误:缺少)在参数列表之后"的东西吗?

我在这个问题上花了几个小时。

谢谢

我认为

这是问题所在,没有引号:

<button onclick="javascript:publish('+str+');">

所以如果str是"我的评论",将生成一个错误:

<button onclick="javascript:publish(my comments);">

要解决这样的使用:

<button onclick="javascript:publish('''+str.replace(/''/g,''''') +''')

因此,如果 str 是"我的评论",将生成:

<button onclick="javascript:publish('my comments');">

因此,如果str是"calmcalmuncle的评论",将生成:

<button onclick="javascript:publish('calmcalmuncle''s comments');">

编辑:

您还需要解决此问题:

<button onclick="javascript:del(' + "'" + str + "'" + ');">Delete</button>

同样的方式:

<button onclick="javascript:del('''+str.replace(/''/g,''''');">Delete</button>