除了打字错误之外,在注入代码时还有什么其他原因会导致语法错误吗?
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
我将 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