2013-03-20 7 views
6

У меня возникла проблема при попытке использовать следующий код. Он отлично работает в Firefox, Safari, Chrome и IE 9 + 10, но заставляет остальную часть моей страницы «сбой» при работе в IE8. Ошибка консоли, которую я получаю, это «несоответствие типа», и отладчик указывает на строку оператора IF. Я ударился головой о стену, пытаясь понять это, но безуспешно. Кто-нибудь знает, что здесь происходит?Несоответствие типа - JavaScript

function writeIframe11092() 
{ 
    alert("BEFORE"); 
    document.write('<iframe style=\"position:absolute;left:-40000px;\" src=\"https://mydomain.com/images/close.gif\" ></iframe>'); 
    alert("AFTER"); 
} 

if (window.attachEvent) 
    window.attachEvent('onload', writeIframe11092()); 
else if (window.addEventListener) 
    window.addEventListener('load', writeIframe11092(),false); 
+1

Можете ли вы попробовать с фигурными фигурными скобками после этого заявления? – DevelopmentIsMyPassion

ответ

19

writeIframe11092() вызывает функцию и возвращает значение (undefined в данном случае), и передает это значение attachEvent.

writeIframe11092 - это переменная, представляющая собой функцию, которую вы хотите использовать здесь.

if (window.attachEvent){ 
    window.attachEvent('onload', writeIframe11092); 
} 
else if (window.addEventListener){ 
    window.addEventListener('load', writeIframe11092, false); 
} 
+2

Моя любимая часть о StackOverflow не получает помощь для решения проблемы (хотя это очень полезно), но я получаю знания, которые я могу применить к будущим проблемам. То, как вы только что ответили на этот вопрос, взорвало мое сознание. Большое спасибо за ответ! – Minja

+0

@deniatus: Добро пожаловать. Я попробую. :) Когда я отвечаю, мне нравится объяснять, почему метод пытался не работать, а не просто «вот правильный ответ» :) –

Смежные вопросы