Không. Không có tham chiếu đến cửa sổ, bạn không thể tìm thấy lại, theo tên hoặc cách khác. Không có bộ sưu tập các cửa sổ.
UPDATE: Đây là cách bạn có thể làm điều đó cho mình:
var windows = {};
function openWindow(url, name, features) {
windows[name] = window.open(url, name, features);
return windows[name];
}
Bây giờ, openWindow
sẽ luôn luôn mở cửa sổ, và nếu cửa sổ đã tồn tại, nó sẽ tải URL được đưa ra trong cửa sổ đó và trở lại một tham chiếu đến cửa sổ đó. Bây giờ bạn cũng có thể thực hiện findWindow
:
function findWindow(name) {
return windows[name];
}
nào sẽ trở lại cửa sổ nếu nó tồn tại, hoặc undefined
.
Bạn cũng nên có closeWindow
, do đó bạn không giữ tham chiếu đến các cửa sổ mà bạn đã mở cho mình:
function closeWindow(name) {
var window = windows[name];
if(window) {
window.close();
delete windows[name];
}
}
Nếu nó không phải là có thể, là những gì điểm cho cửa sổ tên?
Tên được sử dụng nội bộ bởi trình duyệt để quản lý cửa sổ. Nếu bạn gọi window.open
có cùng tên, nó sẽ không mở một cửa sổ mới mà thay vào đó tải URL đó vào cửa sổ đã mở trước đó. Có một vài điều khác, từ MDN window.open():
Nếu cửa sổ có tên strWindowName đã tồn tại, thì strUrl sẽ được tải vào cửa sổ hiện có. Trong trường hợp này, giá trị trả về của phương thức là cửa sổ hiện tại và strWindowFeatures bị bỏ qua. Cung cấp một chuỗi rỗng cho strUrl là một cách để có được một tham chiếu đến một cửa sổ mở theo tên của nó mà không thay đổi vị trí của cửa sổ. Để mở một cửa sổ mới trên mọi lệnh gọi window.open(), hãy sử dụng giá trị đặc biệt _blank cho strWindowName.
Tốt giải thích và làm việc xung quanh. Cảm ơn! –
Điều này có thể tốt cho các cửa sổ nhưng nó không hoạt động trên hệ thống Linux của tôi ... không chắc chắn nếu nó là một cửa sổ Microsoft tham khảo hay không, nhưng đôi khi những gì xảy ra trên máy Linux của tôi cũng xảy ra trên máy ... – CrandellWS
Bắt đầu với Google Chrome 41, phương pháp này có một tác dụng phụ xấu: bất cứ khi nào bạn thực hiện window.open(), cửa sổ đã mở sẽ có tiêu điểm. Hiện tại không có cách giải quyết nào mà tôi có thể tìm thấy để ngăn chặn hành vi này, điều này khiến tôi đau đầu. Tôi chỉ muốn có tham chiếu đến cửa sổ đó, tôi không muốn nó được tập trung. gọi window.open() với url trống không hoạt động. – schlingel