Javascript 如何获取网站中最顶端定位图像的链接?
我正在写一个脚本,它需要在任何网站上位于最顶端的图像的src,不是源中的第一个图像,而是位于最高位置的图像。Javascript 如何获取网站中最顶端定位图像的链接?,javascript,jquery,python,html,css,Javascript,Jquery,Python,Html,Css,我正在写一个脚本,它需要在任何网站上位于最顶端的图像的src,不是源中的第一个图像,而是位于最高位置的图像。 我尝试了一些非常基本的方法,即检索第一个图像标记,但是这不适用于css/jquery/javascript定位的图像 你知道我该怎么做吗? |----------------- |……头衔。。。。 | |------| || image |加载后,可以通过first()检查Dom中的第一个img元素 希望它有帮助//为您的图像使用最合适的选择器,如“body img”或bla b
我尝试了一些非常基本的方法,即检索第一个图像标记,但是这不适用于css/jquery/javascript定位的图像
你知道我该怎么做吗?
|-----------------
|……头衔。。。。
| |------|
|| image |加载后,可以通过first()检查Dom中的第一个img元素
希望它有帮助//为您的图像使用最合适的选择器,如“body img”或bla bla。。。
// Use the most appropriate selector for your images such as "body img" or bla bla...
var images = jQuery('img');
var topMostImageIndex = 0;
for (var i = 0; i < images.length; i++) {
if (jQuery(images[i]).position().top < jQuery(images[topMostImageIndex]).position().top) {
topMostImageIndex = i;
}
}
// It's the top-most image
images[topMostImageIndex];
var images=jQuery('img');
var-topMostImageIndex=0;
对于(var i=0;i
我对jQuery的回复不太确定,但我相信这仍然只会给你带来好处
您可以选择相对图像坐标。在前面这篇文章中,我们展示了一个方法,并窃取了相同的方法
从中,以下代码应该执行您需要的操作
注意,我认为使用0 top检查来确定图像是否正确是安全的
看不见或看不见,但这可能有问题。此外,这将只获得img标签内的图像,而不是图像链接或css设置的任何内容
// cumulative offset function stolen from PrototypeJS
var cumulativeOffset = function(element) {
var top = 0, left = 0;
do {
top += element.offsetTop || 0;
left += element.offsetLeft || 0;
element = element.offsetParent;
} while(element);
return {
top: top,
left: left
};
};
// get all images
var results = document.getElementsByTagName("img");
var images = [];
for (result in results) {
if (results.hasOwnProperty(result)) {
images.push(results[result]);
}
}
// map our offset function across the images
var offsets = images.map(cumulativeOffset);
// pull out the highest image by checking for min offset
// offset of 0 means that the image is invisible (I think...)
var highest = images[0];
var minOffset = offsets[0];
for (i in offsets) {
if (minOffset.top === 0 ||
(offsets[i].top > 0 && offsets[i].top < minOffset.top)) {
minOffset = offsets[i];
highest = images[i];
}
}
// highest is your image element
console.log(highest);
//从PrototypeJS窃取的累积偏移量函数
var cumulativeOffset=函数(元素){
var top=0,left=0;
做{
top+=element.offsetTop | | 0;
左+=element.offsetLeft | | 0;
element=element.offsetParent;
}while(元素);
返回{
顶:顶,,
左:左
};
};
//获取所有图像
var结果=document.getElementsByTagName(“img”);
var图像=[];
for(结果中的结果){
if(results.hasOwnProperty(result)){
推送(结果[结果]);
}
}
//将我们的偏移函数映射到图像上
var offset=images.map(累积偏移量);
//通过检查最小偏移量拉出最高图像
//偏移量为0表示图像不可见(我认为…)
var最高=图像[0];
var minOffset=偏移量[0];
对于(以偏移量表示的i){
如果(minOffset.top==0||
(偏移量[i].top>0&&offset[i].top
您需要比较每个元素的.y
属性
function getTopMostImage() {
//Get all images
var imgs = document.querySelectorAll("img");
//Define a variable that marks the topmost image
var topmost = imgs[0];
//Check all image positions and mark the topmost
for (i = 1; i < imgs.length; i++) {
if (topmost.y > imgs[i].y)
topmost = imgs[i];
}
return topmost.src;
}
函数getTopMostImage(){
//获取所有图像
var imgs=document.querySelectorAll(“img”);
//定义标记最顶部图像的变量
var-topmest=imgs[0];
//检查所有图像位置并标记最上面的位置
对于(i=1;iimgs[i].y)
topmost=imgs[i];
}
返回topmost.src;
}
请发布您的html代码。谢谢,它应该适用于任何网站。。。没有特别的html