Làm cách nào để dừng cửa sổ bật lên javascript?

Nhiệm vụ rất phổ biến là mở cửa sổ bật lên trong trình duyệt để hiển thị một số thông tin bổ sung cho người dùng hoặc trong trường hợp của tôi là mở phiên bản thân thiện với bản in của trang. Tuy nhiên, bạn cần cẩn thận khi triển khai tính năng này vì nếu thực hiện không đúng cách, trình duyệt của bạn có thể chặn cửa sổ bật lên

Sử dụng cửa sổ. open[] để hiển thị cửa sổ bật lên trong trình duyệt

Tất cả các trình duyệt đều hỗ trợ window.open[] để hiển thị cửa sổ bật lên, nhưng có một số quy tắc ở đó. Cửa sổ phải được mở do hành động của người dùng, chẳng hạn như nhấp vào nút. Tuy nhiên, nếu bạn thêm lệnh gọi ajax bên trong sự kiện nhấp vào nút và cố gắng mở cửa sổ bật lên bên trong lệnh gọi lại, thì hành động đó không còn được coi là hành động của người dùng nữa và cửa sổ bật lên đó sẽ bị chặn. Ví dụ: đoạn mã sau sẽ mở một cửa sổ mới do lệnh gọi ajax và người dùng sẽ thấy thông báo “Đã chặn cửa sổ bật lên”

printButtonClicked: function[]{
$.post["/ajax/friendlyPrintPage", postData].done[function [htmlContent] {
	var id = [new Date[]].getTime[];
	var myWindow = window.open[window.location.href + '?printerFriendly=true', id, 
	"toolbar=1,scrollbars=1,location=0,statusbar=0,menubar=1,resizable=1,width=800,
	height=600,left = 240,top = 212"]; 
	myWindow.document.write[htmlContent]; 
	myWindow.focus[];
}] 
} 

Người dùng có thể bỏ chặn các cửa sổ bật lên như vậy, nhưng có một cách tốt hơn để giải quyết vấn đề này mà người dùng không cần thực hiện thêm thao tác nào

Cách chính xác để mở một cửa sổ bật lên mới trong JavaScript

Cách tốt hơn để tránh hoàn toàn việc chặn cửa sổ bật lên trong trình duyệt là mở một cửa sổ mới do hành động của người dùng, nhưng hãy điền nội dung vào cửa sổ đó sau khi yêu cầu ajax hoàn tất

Đoạn mã sau cho biết cách gọi chính xác window.open[] để hiển thị cửa sổ bật lên, cửa sổ bật lên này sẽ không bị chặn bởi trình duyệt

// immediately open a new pop up window, but fill it with content later, 
// when ajax request will be completed
printButtonClicked: function[]{              
	var id = [new Date[]].getTime[];  
	var myWindow = window.open[window.location.href + '?printerFriendly=true', id, 
"toolbar=1,scrollbars=1,location=0,statusbar=0,menubar=1,resizable=1,width=800,
height=600,left = 240,top = 212"];
	$.post["/ajax/friendlyPrintPage", postData].done[function[htmlContent] {
		myWindow.document.write[htmlContent];
		myWindow.focus[];
	}];
}

Như bạn thấy, điều đầu tiên bạn phải làm là mở một cửa sổ mới và lưu ID của nó, để sau này sau khi thực hiện xong lệnh gọi ajax, bạn có thể cập nhật nội dung của cửa sổ bật lên thành bất kỳ nội dung nào được trả về cho bạn từ cửa sổ bật lên.

Alex Shapovalov

Alex Shapovalov là người sáng lập Yaplex – một công ty tư vấn CNTT và phát triển phần mềm, có trụ sở tại Ontario, Canada. Alex cung cấp dịch vụ tư vấn CNTT và. NET dịch vụ phát triển phần mềm ở Canada và Hoa Kỳ

User798903548 đã đăng

Cách duy nhất để vượt qua trình chặn cửa sổ bật lên là để hoạt động của người dùng trực tiếp mở cửa sổ.
 
 Hoặc.
 

Điều này sẽ hoạt động hầu hết thời gian, trừ khi người dùng đã đặt trình chặn của mình để từ chối tất cả các cửa sổ bật lên

Cách khác là bảo anh ta tắt trình chặn


 



Ứng dụng này sử dụng JavaScript cho chức năng của nó. Vui lòng đóng trình duyệt của bạn, bật JavaScript và tải lại trang này để tiếp tục

NC

Đôi khi, khi chúng tôi cố gắng mở một cửa sổ bằng phương pháp window.open, chúng tôi có thể thấy cửa sổ bật lên cấp quyền của trình duyệt yêu cầu quyền mở cửa sổ bật lên được tạo bởi window.open

Trong bài viết này, chúng ta sẽ xem xét cách tránh các trình chặn cửa sổ bật lên của trình duyệt trong mã JavaScript của chúng ta

Cửa sổ tránh cuộc gọi. mở trong Chức năng không đồng bộ

Để tránh cửa sổ bật lên cho phép mở cửa sổ bật lên, chúng ta nên sử dụng tránh gọi window.open trong hàm trả về lời hứa hoặc gọi lại cho các hàm như setTimeout , setInterval hoặc bất kỳ hàm không đồng bộ nào khác

Điều này là do, một cửa sổ bật lên chỉ có thể được mở từ một ứng dụng mà không được phép bằng hành động trực tiếp của người dùng

Độ sâu của chuỗi cuộc gọi cũng có thể quan trọng vì một số trình duyệt cũ hơn yêu cầu quyền là window.open không được gọi bởi hàm chạy ngay sau khi người dùng thực hiện hành động

Do đó, chúng ta nên gọi window.open trong các chức năng đồng bộ được chạy do hành động trực tiếp của người dùng để tránh cửa sổ bật lên cấp quyền bật lên hiển thị trong bất kỳ trình duyệt nào

Chúng tôi có thể kiểm tra xem cửa sổ bật lên có bị chặn hay không bằng cách kiểm tra xem window.open có trả về

// immediately open a new pop up window, but fill it with content later, 
// when ajax request will be completed
printButtonClicked: function[]{              
	var id = [new Date[]].getTime[];  
	var myWindow = window.open[window.location.href + '?printerFriendly=true', id, 
"toolbar=1,scrollbars=1,location=0,statusbar=0,menubar=1,resizable=1,width=800,
height=600,left = 240,top = 212"];
	$.post["/ajax/friendlyPrintPage", postData].done[function[htmlContent] {
		myWindow.document.write[htmlContent];
		myWindow.focus[];
	}];
}
3 hoặc window.open0 không

Chẳng hạn, chúng ta có thể kiểm tra xem cửa sổ bật lên có bị chặn hay không bằng cách viết

const pop = [url, w, h] => {
const popup = window.open[url, '_blank', 'toolbar=0,location=0,directories=0,status=1,menubar=0,titlebar=0,scrollbars=1,resizable=1,width=500,height=500'];
return popup !== null && typeof popup !== 'undefined'
}
console.log[pop['//example.com']]

Chúng tôi gọi window.open với window.open2 làm đối số đầu tiên và một chuỗi có một số cài đặt làm đối số thứ 3

Làm cách nào để mở cửa sổ bật lên trong JavaScript?

Cú pháp để mở một cửa sổ bật lên là. cửa sổ. mở [url, tên, thông số]. Một URL để tải vào cửa sổ mới. Tên của cửa sổ mới. Mỗi cửa sổ có một cửa sổ. tên và ở đây chúng tôi có thể chỉ định cửa sổ nào sẽ sử dụng cho cửa sổ bật lên. Nếu đã có một cửa sổ có tên như vậy – URL đã cho sẽ mở trong đó, nếu không, một cửa sổ mới sẽ được mở

Làm cách nào để tắt cửa sổ bật lên

Chọn Cài đặt và hơn thế nữa > Tiện ích mở rộng, sau đó chọn nút chuyển ở bên phải của từng tiện ích mở rộng để tắt tiện ích đó. Nếu cửa sổ bật lên bị chặn sau đó, hãy bật lại từng cái một để xác định cái nào gây ra sự cố. Chặn cookie của bên thứ ba. Để thực hiện việc này, hãy chọn Cài đặt và hơn thế nữa > Cài đặt > Quyền của trang web > Cookie và dữ liệu trang web

Làm cách nào để chặn cửa sổ bật lên trên màn hình của tôi?

Chặn hoặc cho phép cửa sổ bật lên trong Chrome Theo mặc định, Google Chrome chặn cửa sổ bật lên tự động hiển thị trên màn hình của bạn. Khi cửa sổ bật lên bị chặn, thanh địa chỉ sẽ được đánh dấu Đã chặn cửa sổ bật lên. Bạn cũng có thể quyết định cho phép cửa sổ bật lên

Làm cách nào để loại bỏ quảng cáo bật lên trên Chrome?

Trên máy tính của bạn, hãy mở Chrome. Ở trên cùng bên phải, hãy nhấp vào biểu tượng Thêm Cài đặt. Nhấp vào Quyền riêng tư và bảo mật Cài đặt trang web. Nhấp vào Cửa sổ bật lên và chuyển hướng. Chọn tùy chọn bạn muốn làm cài đặt mặc định. Không phải tất cả cửa sổ bật lên đều là quảng cáo hoặc thư rác. Một số trang web hợp pháp hiển thị nội dung web trong cửa sổ bật lên

Làm cách nào tôi có thể tắt cảnh báo bật lên JavaScript trong Chrome?

Mở Chrome DevTools. Nhấn Control+Shift+P hoặc Command+Shift+P [Mac] để mở Menu Lệnh. Bắt đầu nhập javascript , chọn Tắt JavaScript rồi nhấn Enter để chạy lệnh

Cửa sổ bật lên JavaScript là gì?

Trong Javascript, hộp bật lên được dùng để hiển thị thông báo hoặc thông báo cho người dùng . Có ba loại hộp bật lên trong JavaScript là Hộp cảnh báo, Hộp xác nhận và Hộp nhắc nhở. hộp cảnh báo. Nó được sử dụng khi cần tạo một thông báo cảnh báo.

Cửa sổ bật lên có sẵn trong JavaScript là gì?

JavaScript có ba loại hộp bật lên. Hộp cảnh báo, hộp xác nhận và hộp nhắc nhở .

là pop

Cửa sổ bật lên chứa quảng cáo thường được tạo bởi JavaScript sử dụng tập lệnh chéo trang [XSS], đôi khi có phụ . Chúng cũng có thể được tạo bởi các lỗ hổng/lỗ hổng bảo mật khác trong bảo mật trình duyệt.

Chủ Đề