Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法使用Firefox扩展更改现有JavaScript?_Javascript_Firefox - Fatal编程技术网

有没有办法使用Firefox扩展更改现有JavaScript?

有没有办法使用Firefox扩展更改现有JavaScript?,javascript,firefox,Javascript,Firefox,我正在编写一个Firefox扩展,以使动态web应用更易于访问(应用ARIA角色、图像的alt文本等),我想知道:是否可以从扩展中更改现有JavaScript的内容?我以前使用GreaseMonkey附加组件来执行以下操作: SomeObjectTheyCreated.Method = function(text){ // My code here. }; 但是“GreaseMonkey编译器”已经过时了,会带来更多的麻烦,所以我有很多功课要做,只是学习使用这个老式的SDK(一个命令提

我正在编写一个Firefox扩展,以使动态web应用更易于访问(应用ARIA角色、图像的alt文本等),我想知道:是否可以从扩展中更改现有JavaScript的内容?我以前使用GreaseMonkey附加组件来执行以下操作:

SomeObjectTheyCreated.Method = function(text){
    // My code here.
};
但是“GreaseMonkey编译器”已经过时了,会带来更多的麻烦,所以我有很多功课要做,只是学习使用这个老式的SDK(一个命令提示符,真的吗?哈哈)


不过,除了开玩笑,当我尝试执行类似于上述代码的操作时,命令提示符会给我一个错误“someobjectthecreated is undefined”。当然,这是有道理的,因为我没有在扩展中定义它。所以我想知道的是,有没有其他方法可以在页面上对脚本进行“重新定义”?谢谢。:)

要更改js文件,您需要访问存储和提供js文件的服务器。我知道很多(对于标准JavaScript),但对于扩展…?抱歉,这有点粗鲁。但如果我有权访问服务器,我只需登录服务器并更改我想要的内容。不过,对于Firefox扩展,我认为我们只是在他们的基础上编写了更多的JS(他们用的术语是“内容脚本”和/或“页面修改”)。我不得不为对“更改”一词的吹毛求疵感到抱歉。基本上有两种方法可以实现这一点:a)在页面中插入一个脚本,该脚本可以改变环境(包括页面脚本定义的js对象)-“greasemonkey”方法。你需要知道什么时候注射,以及如何变异。b) 动态修改加载的页面脚本。相当复杂且容易出错,但可能是必要的。