除了打字错误之外,在注入代码时还有什么其他原因会导致语法错误吗?

Can anything else cause a syntax error when injecting code beside a typo?

我将 html 代码注入到 html 中,尽管我的所有其他按钮都可以工作,但这个将数据发送到 sqlite 数据库的太平洋按钮给我以下错误。

未捕获的语法错误:参数列表后缺少 )

问题是我已经检查了代码并尝试了不同的方法,并且由于我注入了代码,所以它不会发现错误只指向 DOCTYPE?

正在注入的HTML:

 $(info).html('<h4 class="media-heading">' + response[rCnt].title + '</h4><h3><span class="glyphicon glyphicon-star" aria-hidden="true">    </span>  ' + response[rCnt].social_rank.toFixed(2) + '</h3><h3><span class="glyphicon glyphicon-print" aria-hidden="true">    </span>   ' + response[rCnt].publisher + '</h3><h3><span class="glyphicon glyphicon-home" aria-hidden="true">    </span>  <a> ' + response[rCnt].source_url + '</a></h3><button type="button" class="btn btn-default" id="button1" onclick="saveRecipe(' + response[rCnt].title + ',' + response[rCnt].social_rank.toFixed(2) + ',' + response[rCnt].publisher + ',' + response[rCnt].source_url + ')"  title="Save"><span class="glyphicon glyphicon-save" aria-hidden="true"></span></button>');

HTML 按钮在里面,这样更容易阅读:

<button type="button" class="btn btn-default" id="button1" onclick="saveRecipe(' + response[rCnt].title + ',' + response[rCnt].social_rank.toFixed(2) + ',' + response[rCnt].publisher + ',' + response[rCnt].source_url + ')"  title="Save"><span class="glyphicon glyphicon-save" aria-hidden="true"></span></button>

HTML 按钮向以下对象提供数据的 AJAX 调用:

function saveRecipe(title, rank, auth, src) {
    $.ajax({
        type: "POST",
        headers: {
            "Content-Type": "application/json"
        },
        url: "/SaveFile",
        data: JSON.stringify({
            name: title,
            rating: rank,
            author: auth,
            source: src
        }),
        success: function(response) {
            console.log("Hii");
            console.log(response);
        },
        error: function(response, error) {
            console.log(response);
            console.log(error);
        }
    });
}

我玩了好一阵子,看来你需要在 onClick 中添加一些额外的引号。 例如,如果标题是 "Soup",则 onClick 正在寻找一个名为 Soup 的变量——而不是传递 "Soup" 的值。 这很难处理,因为那个大的 $​​(info).html 语句已经有单引号和双引号了。但我让这个工作:

var onclickstring = "saveRecipe('" + response[rCnt].title + "','" + response[rCnt].social_rank.toFixed(2) + "','" + response[rCnt].publisher + "','" + response[rCnt].source_url + "')";

然后像这样插入:

id="button1" onclick=' + onclickstring + ' title