gpt4 book ai didi

javascript - 使用 FireFox 扩展在本地更改远程网站的 JavaScript?

转载 作者:行者123 更新时间:2023-11-29 16:48:56 29 4
gpt4 key购买 nike

我正在尝试编写一个浏览器扩展来添加一些功能并重新格式化第三方网站上的一些数据。

我安装了 Firefox Developer Edition。然后我基于 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 文件?在那行代码上做一些简单的搜索和替换,这会让其他一切正常执行?

最佳答案

您将使用 beforescriptexecute 事件监听器并更改脚本的 .textContent

https://developer.mozilla.org/en-US/docs/Web/Events/beforescriptexecute

这是一个例子:

document.addEventListener("beforescriptexecute", function(e) {
src = e.target.src;
content = e.target.text;

if (src.search("i18n.js") > -1) {
// Stop original script
e.preventDefault();
e.stopPropagation();
window.jQuery(e.target).remove();

var script = document.createElement('script');

script.textContent = 'script you want';

(document.head || document.documentElement).appendChild(script);
script.onload = function() {
this.parentNode.removeChild(this);
}
}
}
}

关于javascript - 使用 FireFox 扩展在本地更改远程网站的 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071258/

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