JavaScript работает только при перезагрузке страницы - PullRequest
1 голос
/ 07 января 2010

У меня довольно простая страница, которая отображает изображение во всплывающем окне. Событие onLoad просто принимает строку запроса, заполняет тег изображения этим значением, а затем изменяет размеры изображения и окна в соответствии.

По некоторым причинам, это работает только для меня, когда страница перезагружается / обновляется. Или, если изображение было показано один раз, оно будет работать с этого момента, даже если кэширование отключено. Но каждый раз, когда изображение просматривается в первый раз, страница появляется пустой, без ошибок.

Есть предложения?

Спасибо

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Image Zoom</title>
    <meta http-equiv="Pragma" content="no-cache" />
    <script type="text/javascript">
        function getImage() {
            //get the query string (everything after the ?)
            var filename = window.location.search.substring(1);
            //find the image control
            var imageWorking = document.getElementById('dynamicImage');
            //assign the image source
            imageWorking.src = '../Images/' + filename;
            //create an image variable
            var newImg = new Image();
            //assign the source to match the page image
            newImg.src = imageWorking.src;
            //get the width and height
            var width = newImg.width;
            var height = newImg.height;
            //set the page image width and height to match the disk image
            imageWorking.width = width;
            imageWorking.height = height;
            //set the window to be just larger than the image
            window.resizeTo(width + 50,height + 50);
        }
    </script>
</head>
<body onload="getImage();">
    <img src="images/spacer.gif" id="dynamicImage" alt="Image Zoom" width="1" height="1" />
</body>
</html>

Страница вызывается с использованием следующей функции:

function imageZoom(imageName)
{
    window.open('ImageZoom.htm?' + imageName + '','imageZoom','width=400,height=400,menubar=no,toobar=no,scrollbars=yes,resizable=yes');
}

Ответы [ 3 ]

1 голос
/ 07 января 2010

Динамическая запись тега IMG с использованием JavaScript во время загрузки страницы и изменение размера окна при загрузке:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Image Zoom</title>
  <meta http-equiv="Pragma" content="no-cache" />
  <script type="text/javascript">
    function sizeWindow() {

      //find the image control
      var img = document.getElementById('dynamicImage');

      //set the window to be just larger than the image
      window.resizeTo(img.width + 50, img.height + 50);
    }
  </script>
</head>
<body onload="sizeWindow();">
  <script type="text/javascript">
    var filename = window.location.search.substring(1);
    document.write("<img src='../Images/" + filename + "' id='dynamicImage' alt='Image Zoom' />");
  </script>
</body>
</html>
0 голосов
/ 07 января 2010

вы пытались связать функцию getImage с событием onload окна, а не с нагрузкой тела?

0 голосов
/ 07 января 2010

Вам нужно установить SRC <img> на что-то изначально. Если вы не хотите ничего отображать, просто используйте прозрачный GIF размером 1x1 пикселей.

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