我最近写了一个个人Firefox插件,它使用附在按钮上的非常简单和通用的代码来降低网页中第一个视频元素的音量,因此我可以在需要时自动将音量降低到0.003
这是我在插件中使用的代码:
function lower_volume() {
document.getElementsByTagName("video")[0].volume = 0.004;
}
该方法在包括YouTube在内的许多网站上都成功了,但是我遇到了一个小问题,即驻留在YouTube base.js中的函数:g.h.setVolume=function(a){XI();this.o.volume=a};
在经过特定时间后被调用,而这反过来又确定了将video元素调整为“ volume”(音量)滑块的值,这是我不想发生的事情。
我想知道是否有一种方法可以将驻留在base.js中的函数g.h.setVolume
重新定义为类似g.h.setVolume=function(a){};
的东西吗?
我已经尝试使用
document.getElementsByTagName("video")[0].onvolumechange = lower_volume;
为了尽快降低音量,只要函数setVolume更改了音量值并且方法成功,但是听到新音量的十分之一秒,有时会有些烦人。这就是为什么我想知道是否可以编写任何代码来完全重新定义功能g.h.setVolume
。
我知道我要问的内容似乎有点愚蠢且不切实际,还有许多其他方法可以更好地完成我要尝试的工作,但是由于我的插件仅供个人使用,我只是想知道是否有一种方法可以使我重新定义ghsetVolume函数。
此链接包含base.js的完整代码
我仍然是JavaScript的新手,非常感谢您的帮助!