2014-02-14 39 views
-1

不知道我在这里做错了什么。在父窗口中,我有:为什么我不能专注于Opera?

$(document).ready(function() { 
     $('a.new-window').click(function(){ 
      var posY = ($(window).height()-550)/2; 
      var posX = ($(window).width())/2; 
      window.open(this.href, this.alt, "toolbar=0,location=0,directories=0,scrollbars=1,screenX="+posX+",screenY="+posY+",status=0,menubar=0,width=550,height=550"); 
      setTimeout('new-window.focus()', 1); 
      return false; 
     }); 
and so on..... 

然后子窗口中的我:

<script type="text/javascript"> 
var window_focus; 

$(window).focus(function() { 
    window_focus = true; 
}) 
    .blur(function() { 
     window_focus = false; 
    }); 

$(document).one('ready',function() { 
setInterval(function() { $('body').append('has focus? ' + window_focus + '<br>'); }, 1000); 
}); 
</script> 

检查孩子forcus。 “未定义”是我从孩子那里得到的。

我做错了什么?

+1

对于初学者来说,在此代码'的setTimeout( '新window.focus()的',1);',我看不出有任何变量定义称为'新window'我认为这可能不是合法的JavaScript,因为你不能在变量名中使用短划线。 – jfriend00

+0

那里应该有什么? – mobilestimulus

+0

我不知道,因为你不显示你的HTML或解释你想要关注的HTML中的元素。 – jfriend00

回答

1

尝试:

$(document).ready(function() { 
    $('a.new-window').click(function(){ 
     var posY = ($(window).height()-550)/2; 
     var posX = ($(window).width())/2; 
     var new_window = window.open(this.href, this.alt, "toolbar=0,location=0,directories=0,scrollbars=1,screenX="+posX+",screenY="+posY+",status=0,menubar=0,width=550,height=550"); 
     setTimeout(function() { 
      new_window.focus(); 
     }, 1); 
     return false; 
    }); 
+0

不是。它只是Opera拒绝这样做吗? – mobilestimulus

+0

我发现了一个与我的问题不同的工作,但感谢您试一试。标记为答案.... – mobilestimulus

+0

@mobilestimulus - 这是不正确的使用堆栈溢出标记答案作为最佳答案,不起作用。你应该用自己的工作做出自己的回答,并将其标记出来。 – jfriend00