вставить переменную как текст в JavaScript - PullRequest
1 голос
/ 15 марта 2012

Я хочу передать переменную в виде текста или каким-либо образом заставить вышеуказанную функцию работать:

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 Ответ

1 голос
/ 16 марта 2012

Ваша строка 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*/ })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...