gpt4 book ai didi

javascript - Firefox Addon Builder 首选项 - 服务对我不起作用 - 为什么?

转载 作者:行者123 更新时间:2023-12-02 19:41:50 25 4
gpt4 key购买 nike

我正在尝试在 Firefox Add-on Builder 中创建一个按钮来更改搜索栏使用的 URL。为了更改 URL,我有一个面板,可以显示单击按钮的时间,面板中有一系列按钮。

在第二个 .js 文件(不是 main.js)中,我有应该更改 keyword.url 的函数使用 preferences-service 模块的功能。

这是我用来执行此操作的代码:

function changekeywordurl(url) {
alert('Search Engine Changed');
require("preferences-service").set('keyword.url', url);
}

面板的 HTML 是:

<button onclick="changekeywordurl('http://search.yahoo.com/search?p=')">Yahoo</button>

抱歉,如果我犯了一个非常愚蠢的错误;这是我的第一次尝试,也是一个附加组件。

最佳答案

您的扩展程序加载的 HTML 页面没有任何特殊权限 - 它们就像常规网页一样。特别是,函数 require() 未在此上下文中定义。您需要做的是将内容脚本加载到面板中,因为内容脚本可以与扩展程序进行通信。该内容脚本可能如下所示:

// Add event listener in the content script, the page cannot "see" content script
// functions
var buttons = document.getElementsByClassName("searchButton");
for (var i = 0; i < buttons.length; i++)
buttons[i].addEventListener("click", changekeywordurl, false);

// Send a message to the extension if a button is clicked
function changekeywordurl(event)
{
var button = event.target;
self.postMessage(button.getAttribute("_keywordURL"));
}

页面中的按钮将如下所示:

<button _keywordURL="http://search.yahoo.com/search?p="></button>

然后您的扩展程序可以监听来自内容脚本的消息并使用必要的 SDK 模块。

关于javascript - Firefox Addon Builder 首选项 - 服务对我不起作用 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10306337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com