2012-01-25 28 views
6

trong ứng dụng của tôi, tôi có cửa sổ bật lên có thông tin mở khi tôi chọn một số tùy chọn.đưa popup lên trước

lần đầu tiên, đèn đỏ bật lên ở phía trước mọi thứ.

Tuy nhiên, khi mất tập trung, khi người dùng chuyển sang cửa sổ khác, nếu người dùng nhấp lại vào tùy chọn tương tự, tôi muốn hiển thị lại cửa sổ bật lên đó, trước mọi thứ.

tôi cố gắng một cái gì đó như:

<body onLoad="this.focus()"> 
    window.focus(); 
    document.focus(); 
    this.focus(); 

nhưng dos không làm việc cho tôi.

những gì tôi bị thiếu?

Trả lời

14

Bạn nên duy trì tham chiếu đến cửa sổ bật lên mà bạn mở và gọi phương thức lấy nét trên đó.

var win = window.open(url, name, args); 
win.focus(); 

Trong khi mở một popup nếu bạn đưa ra một tên và thời gian tiếp theo khi bạn mở một cửa sổ bật lên có cùng tên nó sẽ sử dụng cùng một cửa sổ bật lên nếu nó không được đóng lại. Bạn chỉ cần tập trung nó.

Bạn có thể sử dụng chức năng đơn giản này để xử lý popup

function windowOpener(url, name, args) { 

    if(typeof(popupWin) != "object" || popupWin.closed) { 
     popupWin = window.open(url, name, args); 
    } 
    else{ 
     popupWin.location.href = url; 
    } 

    popupWin.focus(); 
} 
+1

tôi đang thử nghiệm ngay bây giờ và tìm kiếm của thích một giải pháp tốt, hoạt động tốt trong chrome và ie, nhưng trong FF là hành động kỳ lạ. Không biết cách giải thích cho bạn, nhưng khi tôi mở cửa sổ bật lên (bằng cách sử dụng 'windowOpener') và sau đó mở một cửa sổ khác, từ nguồn nhấp khác, nếu tôi nhấp vào cửa sổ bật lên có' windowOpener', anh ấy sẽ không tập trung trước của tất cả mọi thứ, điều này chỉ xảy ra trong FF. –

Các vấn đề liên quan