【问题标题】:Thunderbird openTab method雷鸟 openTab 方法
【发布时间】:2013-01-15 15:51:22
【问题描述】:

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

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

有人可以帮我吗?

【问题讨论】:

    标签: javascript thunderbird-addon


    【解决方案1】:

    你应该在你打开的标签的 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)

    【讨论】:

    • 非常感谢乔纳森。我已经尝试过类似的东西,但我使用的是“&”而不是“?”很明显,Thunderbird 遇到了问题。
    猜你喜欢
    • 2011-03-06
    • 2014-11-24
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    相关资源
    最近更新 更多