安装插件后在 Firefox 中打开我的页面

2024-01-11

HI,

我正在尝试在安装后第一次重新启动 Firefox 后打开我的主页。

为此,我在加载页面上添加事件处理程序,并检查该事件第一次执行的位置。

window.addEventListener("load", initializeOverlay, false);

但我的问题是当firefox启动时如何在新选项卡中打开页面。我用

`window.open("https://www.xyz.com/");`

但这会在新窗口中打开页面,甚至可能在 Internet Explorer 中打开。

那么有什么方法可以在即将打开的同一窗口的新选项卡中打开页面。

谢谢 巴维克·戈亚尔


我设法使用首选项做类似的事情,而不是创建文件等。

/defaults/preferences/default.js 内部:

pref("extensions.extension_name.just_installed", true);
pref("extensions.extension_name.post_install_url", "http://www.google.com");

然后在附加组件的主 JS 文件中:

// Retrieve the preferences.
var prefs;
prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.extension_name.");
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);

// If we just installed, open the post-install page and update the preferences.
var just_installed = prefs.getBoolPref("just_installed");
var post_install_url = prefs.getCharPref("post_install_url");
if (just_installed) {
  prefs.setBoolPref("just_installed", false);
  gBrowser.selectedTab = gBrowser.addTab(prefs.getCharPref("post_install_url"));    
}

唯一的问题是,卸载扩展后,Firefox 不会重置该扩展保存的首选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装插件后在 Firefox 中打开我的页面 的相关文章

随机推荐

  • 在 Flutter 应用程序中使用 Stripe 保持 PCI 合规性

    我正在将 Stripe 集成为支付网关 并且我正在考虑flutter stripe包装上写着 简化安全性 我们让您可以轻松收集信用卡号等敏感数据并保持 PCI 合规性 这意味着敏感数据将直接发送到 Stripe 而不是通过您的服务器 有关更
  • 当 char * 被类型定义并通过结构访问时,为什么编译器会看到 char * 和 printf 的转换说明符“s”不匹配?

    为什么编译器会抱怨以下 printf 中的参数类型 char 和转换说明符 s 不匹配 include
  • 将 MySQL 数据库拆分为单独的表

    嗯 我不是一个优秀的开发人员或数据库专家 但我对这些事情还是有一点了解的 我正在尝试使用 mysqldump 命令在 VPS 上转储数据库 该命令运行良好 但是 当我在下载转储后尝试在本地恢复时 出现超时错误 任何人都可以告诉我如何通过将数
  • 如何强制PHP/Apache再使用一年?

    因此 另一位员工交给了我一个旧项目 它的代码非常糟糕 几乎让我辞职了 两次 因为我没有那么多时间 这个任务给了我两周时间 所以我无法重写整个内容 我按照要求进行了修改 目前正在进行测试 问题是 代码应该改变它在其他年份的行为 这个问题的问题
  • typescript 扩展数组原型

    我只想使用一种方法来扩展 Array 原型 将字符串数组的每个项目转换为大写 这是我的第一种方法 Array prototype toUppercase gt map String toUppercase 为什么不工作 多谢 需要先声明该成
  • 无法为 Eclipse 安装 Maven 插件 [重复]

    这个问题在这里已经有答案了 我正在 Ubuntu 12 04 LTS 上开发 Eclipse 3 7 indigo 并且我正在尝试安装 Maven 插件 下列的this http eclipse org m2e download 页面 我添
  • 在“adb反向”上出现两次“错误:关闭”

    我正在尝试通过 ADB 反向转发端口 但它只返回以下神秘错误error closed 正常转发工作 会话片段 adb forward tcp 59778 tcp 59778 adb forward list 015d2109ce0c1a0f
  • bash trap 不会忽略信号

    请考虑这个 bash 脚本 bin bash trap INT echo sleep sleep 5 echo rsync rsync a usr lib var tmp 正如预期的那样 尝试使用 ctrl c 中断睡眠失败 但是rsync
  • 为什么“transform(s.begin(),s.end(),s.begin(),tolower)”不能编译成功?

    给出代码 include
  • 如何防止在代码更改时必须重建映像

    我开始在个人项目中使用 Docker 并意识到这将我的开发时间增加到了无法接受的程度 如果我必须为每次代码更改重建映像 我宁愿启动 LXC 实例 我听说有一种方法可以安装它 但不确定具体如何进行 我还有一个 docker compose y
  • 删除[]对象数组

    我已经分配了对象数组 Objects array new Objects N 我应该如何删除这个数组 只是 delete array 或者迭代数组的元素 for int i 0 i
  • Jinja2 中的稳定排序

    可以应用排序过滤器 http jinja pocoo org docs templates sort在 Jinja2 中 首先按一个属性对列表进行排序 然后再按另一个属性排序 这似乎是很自然的事情 但在我的测试中 前面的排序完全不稳定 所有
  • 如何检测正在使用哪个 .NET 运行时(MS 与 Mono)?

    我想知道程序执行期间是使用 Mono 运行时还是 Microsoft 运行时执行 我当前正在使用以下代码来确定我是否在 MS CLR 上 static bool IsMicrosoftCLR return RuntimeEnvironmen
  • 如何确定分离的 pthread 是否还活着?

    如何确定分离的 pthread 是否仍然存在alive 我有一个与线程的通信通道 一个从线程向外指向的单向队列 但是如果线程dies没有喘息 我应该放弃使用流程吗signals或者我可以probe以某种方式提高线程活力 对于可连接 即不分离
  • 将 for wait...of 与同步迭代一起使用

    MDN says https developer mozilla org en US docs Web JavaScript Reference Statements for await of for await of有两个用例 The f
  • 选择文本并从标签 Xamarin 表单中复制

    几天来 我一直在不同的论坛上阅读有关选择文本并从 xamarin 表单中的标签本地复制文本的问题 这似乎不是实现此目的的直接方法 我的问题是 我需要在标签中显示书中的大量数据 并且用户应该能够从标签中选择和复制文本块 我继续在编辑器组件中呈
  • 将只读导航属性配置为构造函数参数

    我有以下型号 public class Session public string Id get set public IList
  • 根据数据内容创建 RecyclerView 项目布局

    我正在创建数据对象的回收器视图 每个对象都会有所不同 例如 对象1 字符串标题 字符串描述 图像 对象2 字符串描述 对象3 图像 字符串链接 目标4 字符串描述 视频 etc 因此 我需要动态创建项目布局以适合每个数据对象 我不想创建一个
  • 如何在 PowerShell 中使用 REST API 在 TFS 中创建错误?

    我正在尝试使用 PowerShell 中的 REST API 使用下面的代码在 TFS 中创建一个错误 但我无法弄清楚如何填充 Bug具有这些参数和数据名称的变量 Param string vstsAccount MyAccountName
  • 安装插件后在 Firefox 中打开我的页面

    HI 我正在尝试在安装后第一次重新启动 Firefox 后打开我的主页 为此 我在加载页面上添加事件处理程序 并检查该事件第一次执行的位置 window addEventListener load initializeOverlay fal