在javascript中将变量作为文本插入

时间:2012-03-15 17:40:00

标签: 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是动态的,所以它可能不同,所以我真的需要知道如何传递我的标题变量。

如果我改变这样的代码:

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

比它完美无缺

1 个答案:

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