Chrome.ExecuteScript问题

时间:2016-06-01 02:39:21

标签: javascript google-chrome-extension

目前我正在使用以下代码将警告语句注入打印出我传入的变量的网页中。脚本如下:

  //Inject statement setting the variable "count" in the webpage to 5
  chrome.tabs.executeScript(id, {
       code: 'count = 5;'
  }); 

  //Inject the script that simply alerts the variable count (alert(count);)
  chrome.tabs.executeScript(id, {
       file: 'inject.js'
  });

  //Inject statement setting the variable "count" in the webpage to 5+1
  chrome.tabs.executeScript(id, {
       code: 'count++;'
  }); 

  //Inject the script that simply alerts the variable count (alert(count);)
  chrome.tabs.executeScript(id, {
       file: 'inject.js'
  });

理想情况下,我希望得到警告的结果" 5"然后" 6。"但是,该网页仅提醒" 5"在两个陈述中,尽管我增加了变量" count"在代码中。我误解了chrome.tabs.executeScript的某些内容,还是我忽略了一个简单的bug?

1 个答案:

答案 0 :(得分:2)

请注意chrome.tabs.executeScript是异步调用,这意味着在您致电chrome.tabs.executeScript(id, {code: 'count++;'});后,count的值可能尚未更新,因此结果为{{1} }或5

chrome.tabs.executeScript有一个回调,在JavaScript执行后调用。你可以将你的方法包装在其中。

6