2011-02-25 109 views
4

我有一个相册,当用户点击FORWARD或BACK时,通过一系列图像循环播放,通过Javascript实现设置img的src。它适用于FF,Opera,IE和Safari,但不适用于Chrome - 在Chrome中,图像有时会出现,有时甚至是空白区域。看起来,如果图像缓存,它们是可见的,但如果它们尚未加载Chrome浏览器不加载它们。我已经确认在元素中正确设置了src,它只是不显示。Chrome浏览器无法加载img src设置为javascript时

如果图像加载到页面的html中,它们会在.src设置为javascript时正常显示,但如果它们不在加载的html代码中,那么它们中的一些会显示出来,有些则不会 - 但只有在Chrome中,在所有其他浏览器中,它才能正常工作。

是否有一些缓存设置需要用于Chrome浏览器,或者我可以做些什么来确保这些缓存设置正确加载?

感谢所有。

罗素

(新增)某些代码如下。它产生的,这是这里的怪常数从何而来,并且该文件继续几百更< LI>元素

<HTML> 
<HEAD> 
    <link href="../lame.css" rel="stylesheet" type="text/css"> 
    <TITLE>Young/Haraske slides</TITLE> 
    <script src="../lame.js"></script> 
    <script> 

    var int2atts = [], int2path = [], paths = {}, atts; 

     atts = {} 

     int2atts[36] = atts; 
     int2path[36] = "Families/Young/Russell" 

     window.onload = function() {substituteNodeInfo(); showPage(254);} 
     var imagePtr = 0; 
     function nextImage(i) { 

     imagePtr = (imagePtr + i + 254) % 254; 
     var nextSrc = document.getElementById("photo" + imagePtr).src 
     var mainImage = document.getElementById("MainImage"); 
     var src = mainImage.src; 
     mainImage.src = src.substring(0, src.lastIndexOf("/")) + nextSrc.substring(nextSrc.lastIndexOf("/")); 

     return false; 
     }     
    </script> 
</HEAD> 
<BODY id="pathBody"> 
    <H1 id="pageTitle">Russell</H1> 
    <div> 
    <img id="MainImage" src="../pictures/1845DEC61.JPG"></img> 
    <h3 id="Title">Russell</h3> 
    <div id="Text"></div> 

    <a href="" onclick="return nextImage(-1)">Previous</a> 
    <a href="" onclick="return nextImage(1)">Next</a> 
    <p /> 

    This filter is included in the following paths: 
    <ul class="paths"> 

     <li class="path"><a href="../folders/Russell.html?path=36">Families/Young/Russell</a></li> 

    </ul> 
    </div> 
    <div class="choosePage"></div> 
    <ul id="gallery" class="filteredItems"> 

     <li id="listing0" class="lineblock"><p> 
      <a class='folder' href="../items/1845DEC61.html"> 
      <img id="photo0" src='../thumbnails/1845DEC61.JPG' alt='1845DEC61.JPG'> 
      <br />Image page</a>/<a href="../fullsize/1845DEC61.JPG">Full size</a> 
      <br />1845DEC61.JPG 
     </li> 

     <li id="listing1" class="lineblock"><p> 
      <a class='folder' href="../items/1669.html"> 
      <img id="photo1" src='../thumbnails/1669.JPG' alt='1669.JPG'> 
      <br />Image page</a>/<a href="../fullsize/1669.JPG">Full size</a> 
      <br />1669.JPG 
     </li> 
+0

能否请您发布一些代码/创建一个小提琴?我也使用Chrome,所以我可以尝试重现它。 – pimvdb 2011-02-25 16:04:04

+2

这听起来像是你需要预载你的图片。 – 2011-02-25 16:07:02

+0

有多达1000个图像,所以我宁愿不预先加载。可能而不是我会放弃功能滚动本页上的图片。 – russell 2011-02-25 16:55:19

回答

0

缓存显然正在被清除。网络选项卡显示chrome认为它正在从缓存加载图像,当我尝试清除缓存一切工作。可能这是一个错误,缓存正在清理,但索引不更新?

感谢您的建议。

+0

这是一个铬报告的错误,[链接] http://code.google.com/p/chromium/issues/detail?id=20960 – russell 2011-02-26 15:14:34

+0

我也面临同样的问题与铬。 Firefox是okey。 – 2014-09-24 07:00:52

0

我解决了从水平图像滚动的重用而产生类似的问题-to看到页面等待20秒钟,这样计时器一招从www.ozzu.com/programming-forum/javascript-sleep-function-t66049.html

去向下http://www.btinternet.com/~st_rise/main/mainfram.htm?../imagery/imgscroll3h.htm 在我的负荷环我称之为模拟睡眠的函数。

function pause(iMilliseconds) { 
    var sDialogScript = 'window.setTimeout(function() { window.close(); }, ' + iMilliseconds + ');'; 
    window.showModalDialog('javascript:document.writeln ("<script>' + sDialogScript + '<' + '/script>")'); 
} 

你可以看到导致我的网站[elenco Alloggi酒店]:http://www.unitaria.it/interventi_u.html

相关问题