Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在页面加载之前执行Crossrider代码_Javascript_Browser_Browser Extension_Crossrider - Fatal编程技术网

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

Javascript 在页面加载之前执行Crossrider代码,javascript,browser,browser-extension,crossrider,Javascript,Browser,Browser Extension,Crossrider,我正在用Crossrider构建一些浏览器扩展。在pageload之前,在呈现任何DOM元素之前,我需要执行一些代码。这对Crossrider有可能吗 我尝试过使用appAPI.dom.onDocumentStart.addJS 在后台范围内,但没有运气。在代码执行之前,我仍然看到部分页面显示 谢谢 更新更多详细信息 appAPI.ready(function($) { appAPI.dom.onDocumentStart.addJS({resourcePath:'main.js'});

我正在用Crossrider构建一些浏览器扩展。在pageload之前,在呈现任何DOM元素之前,我需要执行一些代码。这对Crossrider有可能吗

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

谢谢

更新更多详细信息

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

});
我正在尝试做的一个例子是一个扩展,它将坏网站重定向到好网站。基本上,如果用户点击了我们列表中不好的网站,它会将他们重定向到一个好的替代网站,并给他们一条消息。我正在处理重定向部分,下面是一些示例代码

在我的background.js中

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

});
然后我的参考资料中有一个main.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";
} 
在这种情况下,如果用户去必应,他们会被重定向到谷歌,然后会得到一些有趣的信息。他们还将收到诸如4chan、torrent等网站的警告

因此,目前如果我实现了这段代码,并转到bing,它会闪烁DOM,然后重定向。我正在努力防止这种情况。谢谢

我正在测试Win7和Chrome


谢谢

@Dan感谢您提供更多信息,特别是您试图实现的场景

在本例中,您可以通过简单地使用该方法实现目标,而无需在文档开始时运行。因此,根据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
});
appAPI.ready(函数(){
var resourceArray=['http://www.bing.com/'];
appAPI.webRequest.onBeforeNavigate.addListener(函数(详细信息,opaqueData){
//其中:
//*details.pageUrl是请求页面的选项卡的URL
//*opaqueData是传递给回调函数上下文的数据
//重定向被阻止页面的请求
对于(变量i=0;i

[披露:我是一名Crossrider员工]

一般来说,appAPI.dom.onDocumentStart.addJS方法在每个浏览器的运行时间最早。但是,为了进一步帮助您,我需要更多信息,例如:(1)您在测试哪个操作系统;(2)您在测试哪个浏览器;(3)示例代码(4)重现问题的步骤。[披露:我是一名Crossride员工]感谢您的回复Shlomo,我用您要求的所有附加信息编辑了我的问题。您不需要触发该功能。它作为背景代码的一部分自动启动。