JQuery не работает в дочернем окне?
Когда я пишу:
var x = window.open('','','width=480,height=500');
x.document.write('
<html>
<head>
<link rel="stylesheet" type="text/css" href="chat.css" / >
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"><' +'/script>
<script type="text/javascript">
alert("hi");
<' + '/script>
</head>
<body><p>hi</p></body>
</html>');
Я получил предупреждение.
Но если я сделаю...
x.document.write('
<html>
<head>
<link rel="stylesheet" type="text/css" href="chat.css" / >
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
<' +'/script>
<script type="text/javascript">
$(function(){
alert("hi");
});
<' + '/script>
</head>
<body><p>hi</p></body>
</html>');
Тогда это не работает. Это ничего не делает. Я пытался понять это всю ночь. Есть идеи?
1 ответ
Решение
Это потому, что jQuery никогда не запускает событие готовности DOM, если вы правильно не .close()
документ после записи в него:
var x = window.open('','','width=480,height=500'),
x.document.write('all your html and script here');
x.document.close();
Причитающийся кредит: window.open и $(document).ready