gpt4 book ai didi

firefox - 我希望 Firefox 在 pin Tabs 更改时播放声音?

转载 作者:行者123 更新时间:2023-12-04 05:10:11 25 4
gpt4 key购买 nike

当我的一个固定标签发生变化时,Firefox 可以播放一点“bing”吗?

实际上,Firefox 会突出显示标签图标,但我也想要一个声音通知。

最佳答案

当然! :) 您需要为此制作一个附加组件,但我可以为您提供相关详细信息。获取一个 wav 文件并将其放入您的附加组件 data目录;我叫我的'ding.wav'

我采取了在低级别观看标签的方法,尽管这可能不适合您。还有另一种更高级别的方法也可以工作,我在下面添加了对其的描述。但是,此代码确实有效。

var {Cc, Ci, Cr} = require("chrome");

var data = require('sdk/self').data;
var tabutils = require('sdk/tabs/utils');

// utility function
function newURI(uriStr, base) {
var ios = Cc['@mozilla.org/network/io-service;1']
.getService(Ci.nsIIOService);
try {
var baseURI = base ? ios.newURI(base, null, null) : null;
return ios.newURI(uriStr, null, baseURI);
}
catch (e) {
if (e.result === Cr.NS_ERROR_MALFORMED_URI) {
throw new Error("malformed URI: " + uriStr);
} else if (e.result === Cr.NS_ERROR_FAILURE ||
e.result === Cr.NS_ERROR_ILLEGAL_VALUE) {
throw new Error("invalid URI: " + uriStr);
}
}
return null;
}

// actual function
function attachToTabs() {
tabutils.getTabs().forEach(function (tab) {
if (tab.getAttribute('pinned') === 'true') {
var browser = tabutils.getBrowserForTab(tab);
browser.addEventListener('DOMTitleChanged', function() {
try {
var sound = Cc["@mozilla.org/sound;1"].createInstance(Ci.nsISound);
sound.play(newURI(data.url('ding.wav')));
} catch (e) {
console.log(e);
}
} );
}
});
}

// call the actual function to run on startup
attachToTabs();

此代码不会主动监视已固定的新选项卡,我将把它留给你。它仅在启动时运行一次以附加到现有的固定选项卡,因此每次固定新选项卡时都必须重新启动才能使声音正常工作。

--

与这种方法相比,您还可以采用更高级别的方法来使用选项卡模块并附加到固定的选项卡。插件 SDK tabs module提供了一种查看选项卡已固定然后附加到该选项卡的方法。连接后,您可以从内部查看选项卡内容以获取标题更改事件,然后播放您的声音。

关于firefox - 我希望 Firefox 在 pin Tabs 更改时播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14983720/

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