Как передать переменную из background_page на вкладку в расширении Google Chrome - PullRequest
1 голос
/ 21 марта 2012

Я сначала щелкаю правой кнопкой мыши по изображению.При нажатии на элемент контекстного меню я выполняю скрипт из моей background_page, часть которого -

function getView(info, tab){
  chrome.tabs.executeScript(null, {code:'var i1hold = document.createElement("img");'});
  chrome.tabs.executeScript(null, {code:'i1hold.setAttribute("id", "i1");'});
  chrome.tabs.executeScript(null, {code:'i1hold.setAttribute("src",' + info.srcUrl + ')'});
  chrome.tabs.executeScript(null, {code:'document.getElementById("image").appendChild(i1hold);'});
}

Эта строка не работает: -

chrome.tabs.executeScript(null, {code:'i1hold.setAttribute("src",' + info.srcUrl + ')'});

Я также попытался:-

chrome.tabs.executeScript(null, {code:'i1hold.setAttribute("src",info.srcUrl)'});

Как установить атрибут src таким же, как изображение, которое я щелкнул правой кнопкой мыши, чтобы щелкнуть по пункту контекстного меню ??

1 Ответ

2 голосов
/ 22 марта 2012

Цитаты должны быть добавлены:

chrome.tabs.executeScript(null,
    {code:'i1hold.setAttribute("src", "' + info.srcUrl + '")'});
//                                    ^                   ^

Кроме того, более эффективно объединять код в одну строку и использовать chrome.tabs.executeScript один раз :

function getView(info, tab){
    var code = 'var i1hold = new Image;'
             + 'i1hold.setAttribute("id", "i1");'
             + 'i1hold.setAttribute("src", "' + info.srcUrl + '");'
             + 'document.getElementById("image").appendChild(i1hold);';
    chrome.tabs.executeScript(null, {code: code});
}
...