Javascript 如何获取网站中最顶端定位图像的链接?

Javascript 如何获取网站中最顶端定位图像的链接?,javascript,jquery,python,html,css,Javascript,Jquery,Python,Html,Css,我正在写一个脚本,它需要在任何网站上位于最顶端的图像的src,不是源中的第一个图像,而是位于最高位置的图像。 我尝试了一些非常基本的方法,即检索第一个图像标记,但是这不适用于css/jquery/javascript定位的图像 你知道我该怎么做吗? |----------------- |……头衔。。。。 | |------| || image |加载后,可以通过first()检查Dom中的第一个img元素 希望它有帮助//为您的图像使用最合适的选择器,如“body img”或bla b

我正在写一个脚本,它需要在任何网站上位于最顶端的图像的src,不是源中的第一个图像,而是位于最高位置的图像。

我尝试了一些非常基本的方法,即检索第一个图像标记,但是这不适用于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