在javascript中以文本形式插入变量

在javascript中以文本形式插入变量,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我想将变量作为文本传递,或者以某种方式使上述函数工作: var title = "Hello World"; chrome.tabs.executeScript(tabId, {code: "var param1='"+title+"'; var param2='value2'; "}, function(){ /*some code*/ }); 当我执行上述函数时,它不会将title传递给param1,它必须将param1定义为title。因为title是动态的,它可以是不同的,所以我真的需

我想将变量作为文本传递,或者以某种方式使上述函数工作:

var title = "Hello World";
chrome.tabs.executeScript(tabId, {code: "var param1='"+title+"'; var param2='value2'; "}, function(){ /*some code*/ });
当我执行上述函数时,它不会将
title
传递给
param1
,它必须将
param1
定义为
title
。因为
title
是动态的,它可以是不同的,所以我真的需要知道如何传递title变量

如果我像这样更改代码:

chrome.tabs.executeScript(tabId, {code: "var param1='Hello World!'; var param2='value2'; "}, function(){ /*some code*/ });

比它完美地工作

您的
标题
字符串包含引号、换行符或反斜杠。必须转义这些字符:

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*/ })

标题
字符串包含引号、换行符或反斜杠。必须转义这些字符:

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*/ })


tabId
的值是多少?另外,如果您不知道:将不会在内容脚本中工作。我不确定我是否理解这个问题,您能否举例说明您希望从中获得什么输出?上述代码工作良好。。。但param1值未定义。。因为它不通过。@user它不通过,所以它不工作。在代码中添加
警报(location.href)
,以验证代码是否正确注入,在右侧选项卡中。它可以工作…我检查了!但它以未定义的形式通过了param1。如果我像这样修改代码,它就会像我所希望的那样完美地工作:chrome.tabs.executeScript(tabId,{code:'var param1='Hello World';var param2='value2';“},function(){/*some code*/});
tabId
的值是多少?另外,如果您不知道:将不会在内容脚本中工作。我不确定我是否理解这个问题,您能否举例说明您希望从中获得什么输出?上述代码工作良好。。。但param1值未定义。。因为它不通过。@user它不通过,所以它不工作。在代码中添加
警报(location.href)
,以验证代码是否正确注入,在右侧选项卡中。它可以工作…我检查了!但它以未定义的形式通过了param1。如果我像这样修改代码,它就会像我所希望的那样完美地工作:chrome.tabs.executeScript(tabId,{code:'var param1='Hello World';var param2='value2';“},function(){/*some code*/});事实上,我很难做到这一点,但我用闭包编译器编译了我的代码,只使用空格编译,然后删除了所有换行符。如果您试图清理javascript代码以执行,此代码可能会为您抛出错误。您可以使用空格字符或无字符(“”)@DevinGRhode“清理要执行的JS代码”来替换换行符、回车符、退格符和表单提要?你能举个例子吗?对于问题所描述的情况,答案永远不会失败。您的输入是有效字符串吗?例如,在字符串文本终止之前,没有任何未转换的换行符。我有一个实时扩展名更新系统,所以我通过网络获取js文件,存储在localStorage中,然后执行。代码是闭包编译的,每500个字符输出一个换行符。如果你在谷歌上搜索我的场景,你需要评估javascript,请在这里查看我的答案:我实际上很难做到这一点,但我用闭包编译器编译代码,只编译空白,然后删除所有换行符。如果您试图清除要执行的javascript代码,此代码可能会为您抛出错误。您可以使用空格字符或无字符(“”)@DevinGRhode“清理要执行的JS代码”来替换换行符、回车符、退格符和表单提要?你能举个例子吗?对于问题所描述的情况,答案永远不会失败。您的输入是有效字符串吗?例如,在字符串文本终止之前,没有任何未转换的换行符。我有一个实时扩展名更新系统,所以我通过网络获取js文件,存储在localStorage中,然后执行。代码是闭包编译的,每500个字符输出一个换行符。如果你在谷歌上搜索我的场景,需要评估javascript,请在这里查看我的答案: