Событие загрузки iframe - PullRequest
0 голосов
/ 10 мая 2011

У меня есть страница, которая имеет такую ​​структуру:

<body onLoad="LoadPage()">
        <iframe src="pg1.html">
      <p>Your browser does not support iframes.</p>
    </iframe>
    <iframe src="about:blank">
      <p>Your browser does not support iframes.</p>
    </iframe>
    </body>

Теперь при загрузке тела я установил значение "src" для второго iframe.Если я вызываю body onload, функция, кажется, вызывается дважды ... Так есть ли другой способ, которым я могу вызвать функцию для установки src ..

<script type="text/javascript"> 
        function LoadPage(){
            var pdfVal = document.forms[0].pdf_val.value;
            document.getElementById('ipad_pdf_link').href = pdfVal; 
        }
        </script>

Ответы [ 3 ]

1 голос
/ 10 мая 2011

Я не уверен, почему он загружается дважды, но вы можете вместо onLoad использовать jQuery:

<script> 
function loadPage() {
    var pdfVal = $("name=[pdf_val]").val();
    $('#ipad_pdf_link').attr("src", pdfVal); 
}

$(function() { // called when the page finishes loading
    loadPage();
});
</script>

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

Справка:

1 голос
/ 10 мая 2011

Вы можете поместить

<script type="text/javascript"> 
    LoadPage();
</script>

внизу HTML вместо события onload, и оно все равно будет вызываться после завершения загрузки страницы.

0 голосов
/ 20 марта 2012

Загрузка дважды, скорее всего, связана с этим: http://msdn.microsoft.com/en-us/library/ie/hh180173%28v=vs.85%29.aspx

У меня есть случай, когда IE9 вызывает функцию init дважды, когда она установлена ​​с помощью <body onload="x()">.У нас есть система, в которой наши старые asp-страницы работают в iframe, и их десятки.Все они используют один и тот же старый синтаксис.Первый вызов инициализации сделан правильно, но второй сделан как самый верхний.Это в основном приводит к путанице, потому что в окне iframe нет функций, которые должны быть, потому что это само окно iframe.В IE8, IE9 в режиме IE8, Chrome и Firefox он работает нормально.

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