gpt4 book ai didi

javascript - 如何防止浏览器加载普通 JavaScript 中的 Web 应用程序?

转载 作者:数据小太阳 更新时间:2023-10-29 05:03:26 25 4
gpt4 key购买 nike

我写了下面的 Greasemonkey 脚本来防止我自己访问一些网络应用程序(网站),通常这些我觉得有点上瘾。这是我最接近阻止我的浏览器显示这些站点的方法:

// ==UserScript==
// @name blocko
// @include *
// ==/UserScript==

window.addEventListener('load', function() {
let sites = ['example-1.com', 'example-2.com', 'example-3.com'];
let dotTLD_andAllAfterIt = /\..+/;
let href = window.location.href;
for (let i = 0; i < sites.length; i++) {
if (href.includes(sites[i])) {
let domain = sites[i].replace(dotTLD_andAllAfterIt, '');
document.body.innerHTML =`
<div style="direction: ltr; position: fixed; top: 0; z-index: 999999; display: block; width: 100%; height: 100%; background: red">
<p style="position: relative; top: 40%; display: block; font-size: 66px; font-weight: bold; color: #fff; margin: 0 auto; text-align: center">
Enough with this ${domain} bullshit!
</p>
</div>
`;
}
}
}, true);

我对我在这里的成就不满意,因为这个脚本让我进入网站,在极少数情况下我需要等待 1/2/3/4 甚至 5 秒或更长时间,直到该站点将消失,并且会出现我打印到屏幕上的红色背景消息。因此,我不情愿地接触到我想避免的网站内容。

我希望阻止浏览器通过 JavaScript 导航到网站。有一个名为“BlockSite”的 Chrome 插件可以帮助解决这个问题,我试图检查它的(巨大的)源代码,但无法理解它如何阻止用户被移动到网站,这与我的脚本不同上面将用户移动到网站,但在几秒钟后(在 load 事件被触发后)网站消失并显示一条消息。

请分享一种完全防止您进入网站的方法,例如“BlockSite”。

最佳答案

只要您使用的是 window load 事件,就需要等待。您需要改用 DOMContentLoaded 事件。区别解释here on this answer .

如果你改变它会工作得更快

window.addEventListener('load', function() {
//Your Code
}, true);

document.addEventListener("DOMContentLoaded", function(event) {
//Your Code
});

许多免费扩展程序可用于阻止不需要的域。如果您想为 chrome 构建一个,请告诉我,在这种情况下,我可以进一步提供帮助。

更新:根据评论删除了以下段落

但是如果你想制作自己的扩展,那么你需要特定于浏览器。因为您需要为不同的浏览器编写不同的扩展。

关于javascript - 如何防止浏览器加载普通 JavaScript 中的 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49208303/

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