Окружите текущий выбор двойными кавычками

Я делаю расширение Firefox и пытаюсь зафиксировать текущий выбор в контекстном меню, и все работает нормально. Однако я хочу, чтобы текущий выбор был заключен в двойные кавычки. Фрагмент кода:

contentScript: 'self.on("context", function () {' +
             '  var text = \"'+'window.getSelection().toString()'+'\";' +
             '  if (text.length > 20)' +
             '    text = text.substr(0, 20) + "...";' +
             '  return "Search Google for " + text;' +
             '});'

Javascript заключен в одинарные кавычки, и я попытался избежать двойных кавычек, как в приведенном выше фрагменте кода, но я получаю следующий вывод в контекстном меню:

Search Google for window.selection(...

Как избежать двойных кавычек в строке поиска. Я пытался добавить двойные кавычки в возвращаемую строку, но тщетно. Я думаю, что это, вероятно, потому, что код javascript сам по себе является строкой. Любая помощь приветствуется.


person Annihilator8080    schedule 29.07.2013    source источник


Ответы (1)


Ты можешь сделать :

var text = "\"" + window.getSelection().toString() + "\"";

Вы можете проверить этот jsFiddle, чтобы увидеть его в действии.

Ваш код будет выглядеть так:

contentScript: 'self.on("context", function () {' +
            ' var text = window.getSelection().toString();' +
            ' if (text.length > 20) ' +
            '    text = text.substr(0, 20) + "...";' +
            ' text = "\"" + text + "\""; ' +
            ' return "Search Google for " + text;' +
            ' });'
person Filipe Silva    schedule 29.07.2013
comment
у меня там опечатка (отсутствует знак +). Это была проблема? - person Filipe Silva; 29.07.2013
comment
посмотрите этот jsFiddle с почти таким же рабочим кодом - person Filipe Silva; 29.07.2013
comment
@Аннигилятор8080. ты смог добиться желаемого? - person Filipe Silva; 30.08.2013