jQuery不能在子窗口中工作?

时间:2012-05-16 05:22:42

标签: jquery window cross-window-scripting

当我写:

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 个答案:

答案 0 :(得分:1)

这是因为jQuery永远不会激活DOM ready事件,除非你在写入文档后正确.close()文件:

var x = window.open('','','width=480,height=500'),
x.document.write('all your html and script here');
x.document.close();

应有的信用:window.open and $(document).ready