Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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 在DOM中查找WebRequest的源_Javascript_Html_Google Chrome Extension - Fatal编程技术网

Javascript 在DOM中查找WebRequest的源

Javascript 在DOM中查找WebRequest的源,javascript,html,google-chrome-extension,Javascript,Html,Google Chrome Extension,我目前正在尝试建立一个Google Chrome扩展,其中的一个功能是根据图片是否在页面上方懒洋洋地请求图片。使用chrome.webRequest API我能够在图像的web请求发生之前,使用onBeforeRequest添加一个侦听器;但是,我不知道是哪些DOM元素触发了请求。因此,我不知道请求来自页面上的何处,因此在客户端滚动到页面的正确部分之前无法阻止请求 以下是捕获请求的当前代码: var hideImagesCallback=函数lazyLoadImage(详细信息){ 控制台日志

我目前正在尝试建立一个Google Chrome扩展,其中的一个功能是根据图片是否在页面上方懒洋洋地请求图片。使用
chrome.webRequest API
我能够在图像的web请求发生之前,使用
onBeforeRequest
添加一个侦听器;但是,我不知道是哪些DOM元素触发了请求。因此,我不知道请求来自页面上的何处,因此在客户端滚动到页面的正确部分之前无法阻止请求

以下是捕获请求的当前代码:

var hideImagesCallback=函数lazyLoadImage(详细信息){
控制台日志(详细信息);
返回{cancel:false};
}
变量hideImagesFilter={
URL:[“”],
类型:[“图像”]
}
var hideImagesOptExtraInfoSpec=[“阻塞”];
函数hideImages(){
//启动图像的web请求时触发
chrome.webRequest.onBeforeRequest.addListener(
hideImagesCallback,
hideImagesFilter,
hideImagesOptExtraInfoSpec
);
返回“添加图像的处理程序”;

}
例如,我只需使用内容脚本将图像的
src
替换为
数据惰性src
,然后使用IntersectionObserver API加载它。为什么是webRequest?在发出webRequest之前,我是否能够访问DOM上的元素?我通常关心的是最小化页面发出的HTTP请求。我肯定也会检查IntersectionObserver API。MutationObserver会在创建时截取元素,因此当您清空
src
时,请求要么根本不会发出,要么(如果浏览器决定预取图像),它将被取消。哇,只需检查API,它看起来会有很大帮助!我唯一的问题是,当我更改
src
时,如何更改它,使其根据IntersectionObserver API的结果延迟HTTP请求?我假设
src
的值通常是一个URL,所以我不知道如何在URL中捕获它。这通常是复杂的DOM内容。将元素的
src
保存在一个不同的属性中,就像我上面建议的那样。此外,您还需要处理srcset,
元素。例如,我只需使用内容脚本将图像的
src
替换为
数据惰性src
,然后使用IntersectionObserver API加载它。为什么是webRequest?在发出webRequest之前,我是否能够访问DOM上的元素?我通常关心的是最小化页面发出的HTTP请求。我肯定也会检查IntersectionObserver API。MutationObserver会在创建时截取元素,因此当您清空
src
时,请求要么根本不会发出,要么(如果浏览器决定预取图像),它将被取消。哇,只需检查API,它看起来会有很大帮助!我唯一的问题是,当我更改
src
时,如何更改它,使其根据IntersectionObserver API的结果延迟HTTP请求?我假设
src
的值通常是一个URL,所以我不知道如何在URL中捕获它。这通常是复杂的DOM内容。将元素的
src
保存在一个不同的属性中,就像我上面建议的那样。此外,还需要处理srcset、
元素。