【问题标题】:variables hell - problem with vars and tabs (firefox extension)变量地狱 - 变量和选项卡的问题(firefox 扩展)
【发布时间】:2010-11-21 15:30:35
【问题描述】:

我尝试制作 Firefox 扩展,显示两个按钮:1 和 2。当您按下按钮 1 以 var path 获取值时,即当前打开页面的地址,然后新标签打开变为活动状态。在此选项卡中有 button2,允许放置 var 路径的(innerHTML)值(第一个选项卡的此地址)。现在的问题是:button1 使用函数 open() 和 button2 使用 save(),但第一个函数中的 var 在 kuku.save() 中不存在

这是我的代码:

function openTab() {
  //Save an address of current page
  path=content.location.href;
  //Open new Tab and select it
  var tab=gBrowser.addTab("http://www.google.com");
  var newTabBrowser = gBrowser.getBrowserForTab(tab);
  gBrowser.selectedTab=tab;
}

function write() {
  content.body.innerHTML=path;
}

函数openTab()被执行,当按下正确的按钮时,与write()函数相同。问题是,如何保存到 var 这个地址,因为如果我从第一个函数开始,来自按钮的函数没有这个 var。在此之后我尝试这段代码:

var path = null;
function openTab() {
  //Save an address of current page
  path=content.location.href;
  //Open new Tab and select it
  var tab=gBrowser.addTab("chrome://intabeditor/content/editor.html");
  var newTabBrowser = gBrowser.getBrowserForTab(tab);
  gBrowser.selectedTab=tab;
}

function write() {
    if (path!=null)
    content.body.innerHTML=path;
}

但在这段代码中也很糟糕。 我想,问题是因为路径是本地变量,所以我尝试使用“更全局”的变量:

var kuku = {};
 kuku.path = "";

 kuku.open = function () {
  kuku.path = content.location.href;
  //The rest of the code here
};


 kuku.save = function () {
  content.body.innerHTML=kuku.path;
};

在这个例子中 button1 使用 kuku.open(),button2 kuku.save()

它只适用于每个浏览器的一个标签。我的意思是,当用户按下页面 A 上的 button1 和页面 B 上的 button1 时,这两个新打开的页面将具有相同值的 var 路径。当您按下其他站点上的按钮时,它将覆盖路径的最后一个值。例如:当我打开 2 个选项卡(google.com 和 facebook.com)并从 gogle 中按下按钮 1 时,它将打开新选项卡,并且 kuku.path 的值将是 google 地址。但是接下来,当我在 facebook 中按下 button1 时,值将更改为 facebook 地址,并且在这两个新打开的页面中将是相同的。 我希望,我没有让你感到头晕;)

【问题讨论】:

  • 你的扩展应该做什么?也许这会让你的问题更清楚。

标签: javascript var


【解决方案1】:

windows之间共享数据的方法有很多,最简单的方法是使用fuel应用对象。

我认为适合您问题的另一种方法是使用setUserData/getUserData 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多