注入预加载文件inject.preload.js在我开发环境中无法在Chrome浏览器中加载文件。

125

我用Google Chrome进行我的PHP/JS开发。

今天我开始看到一个加载失败的文件。

文件名总是不同的。

Request URL: blob:http://random.homestead.test/4d9f984b-b8f8-4e77-97cb-4fcfd8ace348

网络页面显示发起者是inject.preload.js:373

如果我打开这个文件,第一行说:

/*
 *This file is part of Adblock Plus <https://adblockplus.org/>,

但我已经禁用了Adblock Plus。我注意到该文件偶尔成功加载。并且还注意到只有在我启用AdBlock(而不是AdblockPlus)时才请求此文件。如果我禁用AdBlock-没有问题,但即使我将我的开发站点从广告拦截中排除 - 文件下载仍然失败。

我的问题是:如何在不完全停用adblock的情况下摆脱控制台日志和网络中的这条红线?

我在stackoverflow.com上尝试了一下,并看到同样的文件inject.preload.js随机命名的文件加载同样成功。该文件头说:

/*
* Frame context wrapper
*
* For some edge-cases Chrome will not run content scripts inside of frames.
* Website have started to abuse this fact to access unwrapped APIs via a
* frame's contentWindow (#4586, 5207). Therefore until Chrome runs content
* scripts consistently for all frames we must take care to (re)inject our
* wrappers when the contentWindow is accessed.
*/

它始于2018年6月14日,今天。


2
我在每个网站上都看到了这个问题,不仅仅是本地开发。 - darylknight
2
尝试使用uBlock Origin,它运行无误且是开源的。 - ToXinE
现在几乎每个网站都会出现这些错误。无论是开发还是其他情况下... - pilat
5个回答

68

看起来它已经正式崩溃了。这个问题被记录在https://issues.adblockplus.org/ticket/6744

我尝试调试并找到确切的原因,但问题似乎出在别处。 JS代码已经调试过(inject.preload.js的373行)。

document.documentElement.appendChild(script); // here, script.src is indeed a valid script
document.documentElement.removeChild(script);
URL.revokeObjectURL(url);

script标签的src属性指向一个有效的Blob JS,在调用该行代码时其仍然存在!


1
谢谢。今天一切正常。尽管票仍处于审核阶段。我正在使用Chrome 67。这很奇怪。 - Yevgeniy Afanasyev
2
仍然在使用最新版本的ABP和Chrome 67时,出现了与@combomatrix发布的相同错误。 - Frumples
在Chrome 67上也是一样! - jskidd3
我觉得有趣的是,我根本没有安装AdBlockPlus,但我却收到了这个错误(inject.preload.js:373)。与OP一样,如果我禁用AdBlock(显然与AdBlockPlus无关),错误就会消失。与OP一样,为我的开发域禁用它也不能消除错误(但我在浏览器工具栏中获得了一个漂亮的绿色大拇指图标)。 - TMA-1

11

该工单正在审核中,他们正在处理中。 现在,您可以将整个测试网站添加到受信任的站点列表中。

输入图片描述


3
如果您使用了任何广告拦截器,请将其删除或暂停该特定页面的广告拦截器。我也曾遇到从Firestore获取数据时JavaScript应用程序出现的相同问题,但是这个方法对我起了作用。

3

问题在第二天自己解决了,即使我使用最新版本的Chrome。 - Yevgeniy Afanasyev

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接