【问题标题】:Chrome extension global variable weirdnessChrome扩展全局变量怪异
【发布时间】:2012-07-21 23:06:35
【问题描述】:

我在 chrome 扩展的 popup.js 中有以下代码。

var tt;
chrome.tabs.query({ active: true, currentWindow: true, windowType: 'normal' },
  function (tabs) {
      tt = 5;      
});
 document.getElementById('elm').textContent = tt;  

但奇怪的是,在函数外部访问时 tt 的值是未定义的,但如果将 document.getElementById('elm').textContent = tt; 放在函数内,它会显示“5”。那么为什么控件退出函数时变量值没有保留呢?

我在这里做错了什么?

此代码在显示弹出窗口时运行。 IE。当单击浏览器操作的按钮时,我简化了代码可读性。实际上,我正在尝试将当前选项卡的 id 放入变量中。但没有任何效果。

【问题讨论】:

标签: javascript google-chrome google-chrome-extension


【解决方案1】:

刚刚找到答案,如果有人再次遇到这种情况,就是这样。

chrome.tabs.query 是一个异步操作,所以稍后调用回调函数。但是document.getElementById('elm').textContent = tt; 行是在调用回调之前执行的,这导致了问题。调试时没有发生这种情况,因为单步执行代码会延迟该行的执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 2017-08-15
    相关资源
    最近更新 更多