gpt4 book ai didi

javascript - 在页面加载之前执行 Crossrider 代码

转载 作者:行者123 更新时间:2023-11-29 22:04:07 24 4
gpt4 key购买 nike

我正在尝试使用 Crossrider 构建一些浏览器扩展。在页面加载之前,在呈现任何 DOM 元素之前,我需要一些代码来执行。这在 Crossrider 上可行吗?

我试过使用 appAPI.dom.onDocumentStart.addJS在背景范围内,但没有运气。在我的代码执行之前,我仍然看到页面部分显示。

谢谢

更新更多细节

我正在尝试做的一个例子是将不良网站重定向到良好网站的扩展。基本上,如果用户访问我们列表中的不良网站,它会将他们重定向到一个好的替代网站并向他们发送消息。我正在处理重定向部分,这里是一些示例代码。

在我的 background.js

appAPI.ready(function($) {
appAPI.dom.onDocumentStart.addJS({resourcePath:'main.js'});

});

然后我的资源中有一个ma​​in.js文件

if(window.location.href == "http://www.bing.com/"){
console.log("You are at Bing... That's bad m'kay.");
window.location = "http://www.google.com";
}

在这种情况下,如果用户去 bing,他们会被重定向到 google,然后会收到一些关于它的有趣消息。他们还将收到有关 4chan、种子网站等网站的警告。

所以目前,如果我实现此代码,并去 bing 它闪烁 DOM,然后重定向。我正在努力阻止这种情况。谢谢!

我在 Win 7 和 Chrome 上测试

谢谢!

最佳答案

@Dan 感谢您提供额外的信息,特别是您要实现的场景。

在这种情况下,您只需使用 onBeforeNavigate 即可实现您的目标无需在文档开始时运行的方法。因此,根据您的 background.js 示例代码,解决方案如下所示:

appAPI.ready(function() {
var resourceArray = ['http://www.bing.com/'];
appAPI.webRequest.onBeforeNavigate.addListener(function(details, opaqueData) {
// Where:
// * details.pageUrl is the URL of the tab requesting the page
// * opaqueData is the data passed to the context of the callback function

// Redirect requests for blocked pages
for (var i = 0; i < opaqueData.length; ++i) {
if (details.pageUrl.indexOf(opaqueData[i]) !== -1) {
console.log("You are at Bing... That's bad m'kay.");
return { redirectTo: 'http://www.google.com' };
}
}
}, resourceArray); // resourceArray is the opaque parameter that is passed to the callback function
});

[披露:我是 Crossrider 员工]

关于javascript - 在页面加载之前执行 Crossrider 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938191/

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