Javascript:循环中的element.click()



我是Javascript的新手。

目前,我想用Javascript从网站上下载一些图片,这是我尝试过的:

$(document).ready(function() {
$('.indnt1').find('a').each(function() {
if($(this).attr('target') === "_blank") {
var image = this;
console.log(image);
image.click();
}
});
});

HTML结构:

<ul class="indnt1">
<li>
<a href="ht.tp://mysite.com/2021%20.jpg"
target="_blank">pic1.jpg</a>
<span class="textPanelFooter">(
271 KB
)</span>
</li>
<li>
<a href="ht.tp://mysite.com/2022%20.jpg"
target="_blank">pic2.jpg</a>
<span class="textPanelFooter">(
349 KB
)</span>
</li>
<li>
<a href="ht.tp://mysite.com/2024%20.jpg"
target="_blank">pic4.jpg</a>
<span class="textPanelFooter">(
319 KB
)</span>
</li>
<li>
<a href="ht.tp://mysite.com/2023%20.jpg"
target="_blank">pic3.jpg</a>
<span class="textPanelFooter">(
218 KB
)</span>
</li>
</ul>

基本上,这个脚本会找到并从中下载图像。但我不知道为什么我的脚本只能下载第一个图像,它不能像我预期的那样下载多个图像。

有人能帮我吗?为什么它不起作用?非常感谢。

是否希望出现另存为对话框?或者让图像自动下载到某个位置?

无论如何,我尝试了这个,我看到网络流量下载图片。

$('img').each(function(a, ing) {
var src = img.src;
var iframe = document.createElement("iframe");
iframe.src = src;
iframe.id = "frame";
document.body.appendChild(iframe);
});

也许这为你指明了正确的方向。希望这会有所帮助。

请尝试一下。

var images = document.getElementsByTagName('img');
var srcList = [];
var i = 0;
setInterval(function(){
if(images.length > i){
srcList.push(images[i].src);
var link = document.createElement("a");
link.id=i;
link.download = images[i].src;
link.href = images[i].src;
link.click();
i++;
}
},1500);

当您单击图像时,会显示一个弹出块,您应该允许在浏览器中弹出选项。

我在本地试用了你的代码,它成功了。

$(document).ready(function() {
$('.indnt1').find('a').each(function() {
if($(this).attr('target') === "_blank") {
var image = this;
console.log(image);
image.click();
}
});
});
<html>
<head>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="indnt1">
<li>
<a href="http://placehold.it/100x100"
target="_blank">pic1</a>
<span class="textPanelFooter">(
271 KB
)</span>
</li>
<li>
<a href="http://placehold.it/100x100"
target="_blank">pic2</a>
<span class="textPanelFooter">(
349 KB
)</span>
</li>
<li>
<a href="http://placehold.it/100x100"
target="_blank">pic3</a>
<span class="textPanelFooter">(
319 KB
)</span>
</li>
<li>
<a href="http://placehold.it/100x100"
target="_blank">pic4</a>
<span class="textPanelFooter">(
218 KB
)</span>
</li>
</ul>
</body>
</html>

相关内容

最新更新