Javascript 正在获取损坏的图像,但它将作为新选项卡加载

Javascript 正在获取损坏的图像,但它将作为新选项卡加载,javascript,image,brokenimage,Javascript,Image,Brokenimage,我有下面的小脚本,似乎工作,但其中两个图像似乎破碎。当我右键单击并加载为新选项卡时,它们将加载: var target=document.getElementById('target'); var计数器=0; var myPictures=[ 'https://media.giphy.com/media/3ohhwJax6g4Y8BK30k/giphy.gif', 'https://media.giphy.com/media/3o7aD5tv1ogNBtDhDi/giphy.gif', 'ht

我有下面的小脚本,似乎工作,但其中两个图像似乎破碎。当我右键单击并加载为新选项卡时,它们将加载:

var target=document.getElementById('target');
var计数器=0;
var myPictures=[
'https://media.giphy.com/media/3ohhwJax6g4Y8BK30k/giphy.gif',
'https://media.giphy.com/media/3o7aD5tv1ogNBtDhDi/giphy.gif',
'https://media.giphy.com/media/1nkUav308CBws/giphy.gif'
];
函数nextPic(){
计数器+=1;
如果(计数器>myPictures.length-1){
计数器=0;
}
target.src=myPictures[计数器];
}

只要在
nextPic()
函数中移动这一行,就不会在将
div加载到DOM中之前试图获取它

function nextPic() {
  var target = document.getElementById('target');
  ...
有时会自动等待DOM加载,有时则不会。这是JavaScript。事实就是这样

推迟 此布尔属性设置为向浏览器指示脚本将在解析文档之后、但在触发DOMContentLoaded之前执行。如果
src
属性不存在(即对于内联脚本),则不得使用该属性,在这种情况下,该属性将无效。要为动态插入的脚本实现类似效果,请改用
async=false


这里有一个很好的方法。

只要将这一行移到
nextPic()函数中,
就可以了,这样在将
div加载到DOM中之前,就不会试图抓取它了

function nextPic() {
  var target = document.getElementById('target');
  ...
有时会自动等待DOM加载,有时则不会。这是JavaScript。事实就是这样

推迟 此布尔属性设置为向浏览器指示脚本将在解析文档之后、但在触发DOMContentLoaded之前执行。如果
src
属性不存在(即对于内联脚本),则不得使用该属性,在这种情况下,该属性将无效。要为动态插入的脚本实现类似效果,请改用
async=false

这是一个好主意。

var target=document.getElementById('target');
var计数器=0;
var myPictures=[
'https://media.giphy.com/media/3ohhwJax6g4Y8BK30k/giphy.gif',
'https://media.giphy.com/media/3o7aD5tv1ogNBtDhDi/giphy.gif',
'https://media.giphy.com/media/1nkUav308CBws/giphy.gif'
];
函数nextPic(){
计数器+=1;
if(计数器==myPictures.length-1){
计数器=0;
}
target.src=myPictures[计数器];
}

var target=document.getElementById('target');
var计数器=0;
var myPictures=[
'https://media.giphy.com/media/3ohhwJax6g4Y8BK30k/giphy.gif',
'https://media.giphy.com/media/3o7aD5tv1ogNBtDhDi/giphy.gif',
'https://media.giphy.com/media/1nkUav308CBws/giphy.gif'
];
函数nextPic(){
计数器+=1;
if(计数器==myPictures.length-1){
计数器=0;
}
target.src=myPictures[计数器];
}


您的脚本似乎正常工作,不是吗?您的脚本正常工作,不是吗?您是否丢弃了缓存?在chrome中如何操作?F12->右键单击地址栏上的“重新加载”按钮->清空缓存并硬重新加载你的缓存了吗?在这里工作很好。如何在chrome中做到这一点?F12->右键单击地址栏重新加载按钮->清空缓存并硬加载