我正在尝试制作一个打开弹出窗口的书签。在这个窗口内是一个 CSS 类列表,一旦选择,就会在window.opener
页面上突出显示该对象。所以我遇到了两个问题。
- Firebug 在弹出窗口中不起作用,所以我看不到发生了什么。
- 窗口永远不会完成加载(至少我可以在 Firefox 中知道),因此
$(document).ready(function(){...})
窗口内部永远不会被执行。
我无法从远程位置打开弹出窗口,因为我遇到了跨域问题。这是一些示例代码:
<script type="text/javascript">
function makepopup(){
var popup = '<!DOC'+'TYPE HT'+'ML PUBLIC "-//W3C//DTD HT'+'ML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">' +
'<ht'+'ml><he'+'ad><title>Test</title>' +
'<scr'+'ipt type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></scr'+'ipt>' +
'</he'+'ad><bo'+'dy>' +
'<div id="wrap">' +
'testing popup' +
'</div>' +
'<input type="button" value="Click Me" />' +
'<scr'+'ipt type="text/javascript">' +
'$(document).ready(function(){' +
'$(":input").click(function(){ alert($(window.opener.doc'+'ument).find("#test").html()) });' +
'})' +
'</scr'+'ipt>' +
'</bo'+'dy></ht'+'ml>';
var testpopup = window.open( '','test','toolbar=1,location=0,status=0,width=500,height=450,scrollbars=1' );
testpopup.document.write(popup);
return false;
}
</script>
<a href="#" onclick="javascript:makepopup()">Open popup</a>
<div id="test" style="display:none">This is hidden text</div>
如果我在弹出窗口中将以下内容添加到控制台$(":input").click(function(){ alert($(window.opener.document).find("#test").html()) });
,它工作正常,所以我确定它 document.ready 永远不会被调用
或者,有没有更好的方法来做到这一点?