2010-10-22 2 views
0

Почему следующий код работает в сафари, но не в IE6? Он открывает окно, но не вызывает предупреждение.Почему следующий код работает в сафари, но не в IE6?

<script> 
     function fnOpenChild() 
     { 
      var openChild = window.open('child.htm'); 
      openChild.onload = function() { 
      alert("im the child window"); 
     }; 
    } 

    </script> 

<input type="button" onClick="fnOpenChild()"> 

Спасибо

+1

Код не должен запускаться в любом браузере, если вы его не вызываете. – BoltClock

+0

Что произойдет, если вы добавите тип MIME? '

1

попробуйте! Переместить событие onload в child.htm

+0

i wud, но я думал о передаче значений от родительского окна к дочернему окну в этой функции, поэтому мне нужна эта функция для работы в пар ent window – manraj82

+0

@ manraj82, см. мой ответ, это может быть полезно для вас :) – jerjer

0

Попробуйте применить onreadystatechange. IE6 имеет некоторые проблемы с onload.

openChild.onload = openChild.onreadystatechange = function() { ... 
0

Там может быть два возможных обходных:

1. Привести сценарий OnLoad ВЗ childwindow

**child.htm** 
<html> 
<script type="text/javascript"> 
    window.onload = function(){ 
     alert('im the child window'); 
    } 
</script> 
<body> 
.... 
</body> 
</html> 

2. Объявить функцию в окне открывания и вызова он на нагрузке ребенка

**parent.htm** 
<script type="text/javascript"> 
    function forChildWindow(params){ 
     alert('im the child window' + params); 
    } 
</script> 

**child.htm** 
<html> 
<script type="text/javascript"> 
    window.onload = function(){ 
     var load = window.opener.forChildWindow; 
      var someparams = " param1"; 
     if(load) { 
      load(someparams); 
      } 
    } 
</script> 
<body> 
.... 
</body> 
</html> 
Смежные вопросы