0

我正在编写一个扩展,我想在新选项卡中打开一个消息(不是默认选项卡,而是在用 HTML 编写的选项卡中,如本教程http://xulforum.org/fosdem2012/presentation/template.html

我的问题是,我想将参数传递给新打开的选项卡,但我没有设法在 Internet 上找到有关传递参数的任何信息。

有人可以帮我吗?

4

1 回答 1

0

你应该在你打开的标签的 URL 中传递你的参数,这绝对是最简单的方法。

openTab("chromeTab", { chromePage: "chrome://yourext/content/foo.html?foo=bar" });

这是一个例程,您可以使用它轻松地将当前 URI 的参数映射到 javascript 字典:

/**
 * Takes the <b>entire</b> query string and returns an object whose keys are the
 * parameter names and values are corresponding values.
 * @param aStr The entire query string
 * @return An object that holds the decoded data
 */
function decodeUrlParameters(aStr) {
  let params = {};
  let i = aStr.indexOf("?");
  if (i >= 0) {
    let query = aStr.substring(i+1, aStr.length);
    let keyVals = query.split("&");
    for each (let [, keyVal] in Iterator(keyVals)) {
      let [key, val] = keyVal.split("=");
      val = decodeURIComponent(val);
      params[key] = val;
    }
  }
  return params;
}

(警告:这是特定于 mozilla 的 javascript)

于 2013-01-16T14:27:24.047 回答