Как отправить идентификатор вкладки при создании?

Итак, я хочу создать новую вкладку и выполнить скрипт на новой вкладке и использовать переменные из сообщения, отправленного ранее.

chrome.tabs.create({url: myUrlblabla}, function() {
  chrome.tabs.executeScript(null, {file: 'myFileScript.js'}, function(Tab tab) {
    chrome.tabs.sendMessage(tab.id, message.myVariable)
  })
});

И Chrome говорит, что в этой строке есть «неожиданный идентификатор».


person Lotherad    schedule 19.12.2015    source источник
comment
Попробуйте разместить это на нескольких строках. Эта строка бессмысленна, когда это одна строка.   -  person Teepeemm    schedule 19.12.2015


Ответы (1)


Произошла синтаксическая ошибка (вкладка Tab). Попробуйте этот код:

chrome.tabs.create({
  url: myUrlblabla
}, function(tab) {
  chrome.tabs.executeScript(tab.id, {
    file: 'myFileScript.js'
  }, function(results) {
    chrome.tabs.sendMessage(tab.id, message.myVariable);
  });
});
person Fraser Crosbie    schedule 19.12.2015
comment
Сигнатура метода также неверна. Обратный вызов chrome.tabs.create должен принимать аргумент tab, and executeScript` должен принимать tab.id вместо null (и его обратный вызов вызывается с результатом скрипта, а не вкладкой, поэтому удалите tab из его обратного вызова). - person Rob W; 19.12.2015
comment
Хорошо, теперь это работает, но я хочу понять, как это работает. Итак, я создаю вкладку, а затем запускаю скрипт на новой вкладке, а затем отправляю сообщение, но зачем результаты? - person Lotherad; 20.12.2015
comment
stackoverflow.com/questions/13166293 / - person Fraser Crosbie; 20.12.2015
comment
Да, но зачем мне результат скрипта, введенного в новую вкладку? - person Lotherad; 20.12.2015
comment
Вам не нужно его использовать. Это необязательно. Это результат работы скрипта в каждом внедренном кадре. Просто удалите его, если он вам не нужен. - person Fraser Crosbie; 20.12.2015