我想将变量作为文本传递或以某种方式使上述函数起作用:
var title = "Hello World";
chrome.tabs.executeScript(tabId, {code: "var param1='"+title+"'; var param2='value2'; "}, function(){ /*some code*/ });
当我执行上述功能时,它不会将title
传递给param1
,它必须将param1
定义为title
。因为title
是动态的,所以它可能不同,所以我真的需要知道如何传递我的标题变量。
如果我改变这样的代码:
chrome.tabs.executeScript(tabId, {code: "var param1='Hello World!'; var param2='value2'; "}, function(){ /*some code*/ });
比它完美无缺
答案 0 :(得分:1)
您的title
字符串包含引号,换行符或反斜杠。必须转义这些字符:
var title = 'Your string was here, with a "quote" etc.';
// Escape each special character:
title = title.replace(/[\\"']/g, '\\$&') /* Backslash and quotes */
.replace(/\n/g, '\\n') /* Newlines */
.replace(/\r/g, '\\r') /* Carriage returns */
.replace(/\t/g, '\\t') /* Tabs */
.replace(/\b/g, '\\f') /* Backspace */
.replace(/\f/g, '\\b'); /* Form feed */
chrome.tabs.executeScript(tabId, {code: "var param1='"+title+"'; var param2='value2'; "}, function(){ /*some code*/ })