gpt4 book ai didi

javascript - 如何使用注入(inject)的 JavaScript 删除或覆盖页面上的函数?

转载 作者:行者123 更新时间:2023-11-28 08:58:46 25 4
gpt4 key购买 nike

我想使用注入(inject)的 JavaScript 从页面中删除 JavaScript 函数,该函数通过 Google Chrome 扩展程序运行。

出于问题的目的,让我们调用示例,我想要删除 testtest 函数。在本例中,该函数在页面上如下所示:

var testtest() {
somecode bla bla bla;
somecode bla bla bla;
somecode bla bla bla;
return false;
}

基本上我想删除或阻止函数 testtest 在页面上运行。

我正在尝试使用 javascript 替换方法来执行此操作,但它不起作用。如果这是不可能的,我想要一个替代解决方案来实现我的最终目标(防止该函数在页面上运行)。

我收到 Hello World 弹出窗口,这意味着脚本正在页面上运行,但代码没有被替换。

这是我使用 javascript 替换方法的尝试:

尝试 1:

alert("Hello World!");
window.location = loc.replace(testtest, "aaaaa");

结论:
“Hello World”弹出窗口:成功
代码替换:失败

--

尝试 2:

alert("Hello World!");
loc.replace(testtest, "aaaaa");

结论:
“Hello World”弹出窗口:成功
代码替换:失败

--

尝试 3:

alert("Hello World!");
testtest= "aaaaa";

结论:
“Hello World”弹出窗口:成功
代码替换:失败

--

尝试 4:

alert("Hello World!");
var str="testtest";
var n=str.replace("testtest","aaaaa");

结论:
“Hello World”弹出窗口:成功
代码替换:失败

<小时/>

也许 javascript 替换方法不是实现我的最终目标的正确方法。我并不关心具体如何做,只要我实现了我的目标。请帮我找到解决方案。

更新:我尝试了其他三种方法,但也失败了。

尝试 5:

alert("Hello World!");
function pacifyGlobalFunction(testtest) {
Object.defineProperty(
window,
testtest,
{
value: function () {},
configurable: true // permit future Object.defineProperty
}
);
}

结论:
“Hello World”弹出窗口:成功
代码替换:失败

--

尝试 6:

alert("Hello World!");
Object.defineProperty(window, 'testtest', {
value: function(){/*This function cannot be overridden*/}
});

结论:
“Hello World”弹出窗口:成功
代码替换:失败

--

尝试 7:

alert("Hello World!");
var actualCode = '(' + function() {
window.testtest = null;
} + ')();';
var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);

结论:
“Hello World”弹出窗口:成功
代码替换:失败

<小时/>

所以我仍然需要一个解决方案。

最佳答案

function testtest() {}

类似于:

window.testtest = function () {};

所以 testtestwindow 对象的一个​​属性。

您可以使用delete从对象中删除属性。所以:

delete window.testtest;

应该删除该功能。不过,该函数仍然会被调用。所以您可能只想重新定义它。

关于javascript - 如何使用注入(inject)的 JavaScript 删除或覆盖页面上的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18062150/

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