Bạn không thể kiểm soát trực tiếp điều này, vì đó là một tùy chọn do người dùng Internet Explorer kiểm soát.
Mở trang bằng Window.open với một tên cửa sổ khác sẽ mở trong một cửa sổ trình duyệt mới như cửa sổ bật lên HOẶC mở trong một tab mới, nếu người dùng đã định cấu hình trình duyệt để làm như vậy.
BIÊN TẬP:
Giải thích chi tiết hơn:
1. Trong các trình duyệt hiện đại, window.open sẽ mở trong một tab mới chứ không phải một cửa sổ bật lên.
2. Bạn có thể buộc trình duyệt sử dụng cửa sổ mới ('cửa sổ bật lên') bằng cách chỉ định các tùy chọn trong tham số thứ 3
3. Nếu lệnh gọi window.open không phải là một phần của sự kiện do người dùng khởi tạo, nó sẽ mở trong một cửa sổ mới.
4. “Sự kiện do người dùng khởi tạo” không nhất thiết phải có cùng một lệnh gọi hàm - nhưng nó phải bắt nguồn từ hàm được gọi bởi một lần nhấp của người dùng
5. Nếu sự kiện do người dùng khởi tạo ủy quyền hoặc hủy bỏ một lệnh gọi hàm (trong trình xử lý sự kiện hoặc người ủy quyền không bị ràng buộc với sự kiện nhấp chuột hoặc bằng cách sử dụng setTimeout chẳng hạn), nó sẽ mất trạng thái là “do người dùng khởi tạo”
6. Một số trình chặn cửa sổ bật lên sẽ cho phép các cửa sổ được mở từ các sự kiện do người dùng khởi tạo, nhưng không cho phép các cửa sổ được mở theo cách khác.
7. Nếu bất kỳ cửa sổ bật lên nào bị chặn, những cửa sổ bật lên thường được trình chặn (thông qua sự kiện do người dùng khởi tạo) đôi khi cũng sẽ bị chặn. Vài ví dụ…
Buộc một cửa sổ mở trong một phiên bản trình duyệt mới, thay vì một tab mới:
window.open('page.php', '', 'width=1000');
Sự kiện sau sẽ đủ điều kiện là sự kiện do người dùng khởi tạo, ngay cả khi nó gọi một hàm khác:
function o(){
window.open('page.php');
}
$('button').addEvent('click', o);
Sự kiện sau sẽ không đủ điều kiện là sự kiện do người dùng khởi tạo, vì setTimeout xác định nó:
function g(){
setTimeout(o, 1);
}
function o(){
window.open('page.php');
}
$('button').addEvent('click', g);