试试这个
<html>
    <script language="javascript">
    function test(){
        window.opener.location.reload();
    
        focusWindow();
    }
    function focusWindow(){
        if( window.opener.document.readyState == "complete" ){
            window.focus();
            return;
        }
        setTimeout( "focusWindow()",10 );
    }
    </script>
    <body>
        child window
        <input type="button" value="test" onclick="test()">
    </body>
</html>

解决方案 »

  1.   

    在父页面的window.onload里设置focus啊
      

  2.   

    a.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
    <title>无标题文档</title>
    </head>
    <script type="text/javascript" src="CookieUtility.js"></script>
    <script language="javascript">
    var view_num = 8;
    var win;window.onload=function(){
    win = window.open("b.html");
    }//////////////////////////////////////////////////////////////////////////////// 
    function history_show() 
    {
    var history_info=getCookie("history_info_xiit");
    var content="";
    if(history_info!=null) 
    {
    history_arg=history_info.split("_www.xiit.cn_");
    var i;
    for(i=0;i<=view_num-1;i++) 
    {
    if(history_arg[i]!="null") 
    {
    var wlink=history_arg[i].split("+");
    content+=("<font color='#ff000'></font>"+"<a href='"+wlink[1]+"' target='_blank'>"+wlink[0]+"</a><br>");
    }
    document.getElementById("history").innerHTML=content;
    }
    }
    else
    {
    document.getElementById("history").innerHTML="对不起,您没有任何浏览纪录";
    }
    }
    // JavaScript Document 
    </script>
    <body>
    <div style="height:100%;" id="history">
    <script language="javascript">
    history_show();
    </script>
    </div>
    </body>
    </html>
      

  3.   

    b.html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
    <title>无标题文档</title>
    </head>
    <script type="text/javascript" src="CookieUtility.js"></script>
    <script language="javascript">
    var view_num = 8;
    //////////////////////////////////// 
    function glog(evt) 
    {
    evt=evt?evt:window.event;
    var srcElem=(evt.target)?evt.target:evt.srcElement;
    try  
    {
    while(srcElem.parentNode&&srcElem!=srcElem.parentNode) 
    {
    if(srcElem.tagName&&srcElem.tagName.toUpperCase()=="A") 
    {
    linkname=srcElem.innerHTML;
    address=srcElem.href+"_www.xiit.cn_";
    wlink=linkname+"+"+address;
    old_info=getCookie("history_info_xiit");
    var insert=true;

    ////////////////////////  
    if(old_info==null) //判断cookie是否为空  
    {
    insert=true;
    }
    else  
    {
    var old_link=old_info.split("_www.xiit.cn_");

    for(var j=0;j<=view_num-1;j++) 
    {
    if(old_link[j].indexOf(linkname)!=-1) 
    insert=false;

    if(old_link[j]=="null") 
    break;
    }
    }
    /////////////////////////////  
    if(insert) //如果符合条件则重新写入数据  
    {
    wlink+=getCookie("history_info_xiit");
    setCookie("history_info_xiit",wlink);
    break;
    }
    }
    srcElem = srcElem.parentNode;
    } } catch(err) {
    //alert(err.description);
    }
    return true;
    }
    //document.onclick=glog;// JavaScript Document 
    window.onload=function(){
    document.onclick= function(){
    glog();
    window.opener.history_show();
    }
    }
    </script>
    <body>
    <div>
    <br>
    <br>
    点击链接:<a href="#">网站1</a>
    <a href="#">网站2</a>
    <a href="#">网站3</a>
    <a href="#">网站4</a>
    <a href="#">网站5</a>
    <a href="#">网站6</a>
    <a href="#">网站7</a>
    <a href="#">网站8</a>
    <a href="#">网站9</a>
    </div> <div style="height:100%;" id="history">
    </div>
    </body>
    </html>
      

  4.   

    一楼的好象不行呀 ,子页面先加载完成,但是父页面还没有加载成功,window.opener.document.readyState == "complete" 是不是判断不出呀
      

  5.   

    你的测试环境是什么?
    readyState就是用来判断父页面是否已经加载完成了。
    你最好把你的代码帖出来。
      

  6.   

    <body onunload="refreshParent();">function refreshParent(){
                    window.opener.location.reload();
               document.onreadystatechange = focusWindow;
       }
    function focusWindow(){
       if( window.opener.document.readyState == "complete"    && document.readyState == "complete" ){
              self.focus();
                return;
            }
          
            setTimeout( "focusWindow()",1000 );
       }
    我是按你那样的做,但是还不行
      

  7.   

    <body onunload="refreshParent();">
    <script>
    function refreshParent(){
                    window.opener.location.reload();
              document.onreadystatechange = focusWindow;
      } 
    </script>只有在画面的onunload事件中才会设置 document.onreadystatechange 事件处理函数。
    (这个地方楼主是不是原意是使用onload事件呀?)
    但新的画面加载的时候,设定的onreadystatechange的事件处理又被复位了。
    因为onreadystatechange的处理函数永远都不会被实行。
      

  8.   

    ---------------> syukugai
    按你那样的方法  setTimeout( "focusWindow()",10 );但是当子页面都加载完了,可是父页面还没有,这个时候setTimeout( "focusWindow()",10 );还会执行不??
      

  9.   

    当然会了,
    这个处理的意义是,每隔10毫秒查询一下父窗口的状态,
    直到你窗口的readyStat="complete"(加载完在).
      

  10.   

    有看我在10楼的帖子吗?
    你为什么要在onunload里去做呢?
    画面都卸载了,当然所有的设定都无效了。
    如果想让画面聚焦应该在画面的onload事件来处理。
      

  11.   

    在父窗口设置一个标志flag,
    打开子窗口前将标志置位 比如: flag = 0;
    子窗口onload事件中对这个变量进行判断,
    如果为0的时候,不刷新父窗口,并将标志设置为 1.
    如果为1的时候,刷新父窗口。