Chrome не загружает img src при установке в javascript - PullRequest
4 голосов
/ 25 февраля 2011

У меня есть фотоальбом, который циклически перебирает серию изображений, когда пользователь нажимает кнопку «Вперед» или «Назад», реализованную в Javascript, устанавливающую src для img. Он работает правильно в FF, Opera, IE и Safari, но не в Chrome - в Chrome изображения иногда появляются, а иногда и остаются пустыми. Если изображения кэшируются, они видны, но если они еще не загружены, Chrome не загружает их. Я подтвердил, что src правильно установлен в элементе, он просто не отображается.

Если изображения загружаются в html для страницы, они правильно отображаются, когда в javascript установлен параметр .src, но если их нет в загруженном html-коде, некоторые из них будут отображаться, а некоторые - нет, но только в Chrome во всех других браузерах он работает нормально.

Есть ли какие-то настройки кеша, которые мне нужно использовать для Chrome, или хак, который я могу сделать, чтобы убедиться, что они загружены правильно?

Спасибо всем.

рассел

(добавлено) Ниже приведен код. Он генерируется, откуда и появляются странные константы, и файл продолжается еще парой сотен элементов

<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>

Ответы [ 3 ]

0 голосов
/ 26 февраля 2011

Кэш, по-видимому, очищается.Вкладка Network показывает, что Chrome думает, что загружает изображение из кеша, когда я пытался очистить кеш, все работало.Возможно, это ошибка, когда кэш очищается, а индекс не обновляется?

Спасибо за предложения.

0 голосов
/ 18 апреля 2011

Я решил аналогичную проблему, возникающую из-за повторного использования горизонтальной прокрутки изображения - чтобы увидеть, что страница жду 20 секунд, поэтому таймер выключается - http://www.btinternet.com/~st_rise/main/mainfram.htm?../imagery/imgscroll3h.htm с трюком от www.ozzu.com / программирование-форум / javascript-sleep-function-t66049.html

В моем цикле загрузки изображения я вызываю эту функцию, которая имитирует сон.

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

0 голосов
/ 25 февраля 2011

возможно, вы можете попытаться предварительно загрузить изображение с помощью ajax, как описано ниже: http://www.4thkingdom.com/public/computers/789073-web-site-speed-prefetching-images-css/view-post.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...