【发布时间】:2016-06-28 08:43:53
【问题描述】:
我正在尝试编写一个浏览器扩展来添加一些功能并重新格式化第三方网站上的一些数据。
我安装了 Firefox 开发者版。然后,我基于Beastify 创建了一个简单的附加扩展。
我编写了一个简单的脚本来监控 span 元素的 innerHTML 何时发生变化,然后进行一些处理。
这段代码有效,但不是我想做的事情:
function fixformat(){
var value = document.getElementById("value");
var valueFloat = parseFloat(value.innerHTML);
if (valueFloat < 1000) valueFloat += 1000;
value.innerHTML = valueFloat;
}
setInterval(fixformat, 100);
在远程服务器上,它使用以下代码实时更新值:
totValue += _currentValue;
value = document.getElementById("value");
value.innerHTML = totValue;
但我想替换这一行:
value.innerHTML = totValue;
有了这个:
value.innerHTML = totValue + 1000;
这段代码隐藏在一个巨大的远程 javascript 文件中,这是我浏览他们的网站时加载的大约两打 javascript 之一。这个 javascript 文件有大约 4000 行代码。当有新信息可用时,它每 1-15 秒执行一次。
有没有办法以编程方式挂钩到那个远程 javascript 文件?对那行代码做一些简单的搜索和替换,这会让其他一切正常执行吗?
【问题讨论】:
-
也许您可以创建脚本的副本并进行所需的修改。然后当页面加载时,删除原始脚本标签并添加修改后的脚本。
-
嗯,这可能会奏效,但每当第三方站点更新某些内容时,这似乎是一场维护噩梦。我打算写很多小的 UI hack,在这里和那里搜索和替换一行代码比保留数千行代码的本地副本要好得多。
-
感谢您的建议,我正在调查this