在这里寻求一些厚颜无耻的帮助。一直盯着这个,并且不明白为什么整个事情都不是保持一个字符串:
var str =
'<script type="cats/conversion">
{"type":"REGISTER",
"params":{"partner_conversion_id":"' + {{sku}} + '",
"f":"' + {{accountHolderName}} + '",
"e":"' + {{dl userid}} + '"}
}
<\/script>';
我原本以为所有的str都是字符串,但我的文本编辑器告诉我它不是。我在哪里打了一个&#39;或&#34;?
帮助!!
答案 0 :(得分:5)
您不能(安全合理地)在JavaScript中执行多行字符串文字。您必须使用连接(+
运算符)来构建它们。你可以这样做:
var str = '<script type="cats/conversion">' +
'{"type":"REGISTER",' +
'"params":{"partner_conversion_id":"' + {{sku}} + '",' +
'"f":"' + {{accountHolderName}} + '",' +
'"e":"' + {{dl userid}} + '"}' +
'}' +
'<\/script>';
注意:我不知道脚本中的{{sku}}
和类似占位符是什么。我认为这些是用于某些模板系统的。它们并非如有用的语法。
编辑:从技术上讲,正如亚历克斯在他的回答中指出的那样,您可以通过使用\
转义换行来执行多行文字。然而,正如亚历克斯所说,这是“被认为是可怕的做法”,并且由于种种原因而容易被打破。不要这样做!
答案 1 :(得分:0)
试试这个
var str = '<script type="cats/conversion">'+
'{"type":"REGISTER",'+
'"params":{"partner_conversion_id":"' + sku + '",'+
'"f":"' + accountHolderName + '",'+
'"e":"' + dl_userid + '"}'+
'} '+
'<\/script>';
答案 2 :(得分:0)
在Javascript中,您必须在行的末尾添加\
以指示多行字符串。这被认为是可怕的做法,因为如果\
后跟任何空格,它将引发语法错误。
var ok = "this is \
my multiline string!";
var notOk = "this is \
my multiline string!";
第二个是错误,因为在行尾\
后面有一个空格。
如果您使用的是ES6,则可以使用带有反引号的template strings:
var x = `This is my
multiline string!`;
如果ES6不是一个选项,并且您不希望使用\
来跟踪不良做法,请将多个字符串连接在一起或在字符串中插入换行符,如下所示:
var myString = "this is line 1" +
" this is line 2" +
" this is line 3";
或
var myString = "this is line 1\n this is line 2\n this is line 3";
答案 3 :(得分:0)
你要么在一行中完成
var str ='<script type="cats/conversion"> {"type":"REGISTER", "params":{"partner_conversion_id":"' + {{sku}} + '", "f":"' + {{accountHolderName}} + '", "e":"' + {{dl userid}} + '"}} <\/script>';
为了便于阅读,如果你想要它是多行的,你必须连接字符串。
var str = '<script type="cats/conversion">' +
'{"type":"REGISTER",' +
'"params":{"partner_conversion_id":"' + {{sku}} + '",' +
'"f":"' + {{accountHolderName}} + '",' +
'"e":"' + {{dl userid}} + '"}' +
'}' +
'<\/script>';
答案 4 :(得分:-1)
我认为你的意思是这样做:
var str =
'<script type="cats/conversion">
{"type":"REGISTER",
"params":{"partner_conversion_id":"' + '{{sku}}' + '",
"f":"' + '{{accountHolderName}}' + '",
"e":"' + '{{dl userid}}' + '"}
}
<\/script>';
{{}}需要用引号括起来。