这是代码:

var newTab;
chrome.tabs.create({url: (newUrl)}, function(tab){
  newTab = tab.id;
});
check();
alert(newTab);
chrome.tabs.update(newTab, {pinned: true});
chrome.tabs.update(tabid, {active: true});
chrome.tabs.remove(newTab);


最后的指令不起作用。 newTab变量不会更新,因此可以将其固定然后删除。

最佳答案

尝试:

var newTab;
chrome.tabs.create({url: (newUrl)}, function(tab){
  newTab = tab.id;

  check();
  alert(newTab);
  chrome.tabs.update(newTab, {pinned: true});
  chrome.tabs.update(tabid, {active: true});
  chrome.tabs.remove(newTab);
});

// Code here is run before the tab is created.


这是因为tabs对象上的create方法是异步的。这意味着方法调用之后的所有代码都将在创建新选项卡之前运行,从而导致错误。

关于javascript - 变量未在Javascript中更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28257914/

10-13 03:09