Tôi biết các kỹ thuật javascript để phát hiện xem cửa sổ bật lên có bị chặn trong các trình duyệt khác hay không (như được mô tả trong câu trả lời cho câu hỏi này ). Đây là bài kiểm tra cơ bản:
var newWin = window.open(url);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
{
//POPUP BLOCKED
}
Nhưng điều này không hoạt động trong Chrome. Không bao giờ truy cập được phần "POPUP BLOCKED" khi cửa sổ bật lên bị chặn.
Tất nhiên, thử nghiệm đang hoạt động ở một mức độ nào đó vì Chrome không thực sự chặn cửa sổ bật lên, nhưng mở nó trong một cửa sổ được thu nhỏ nhỏ ở góc dưới bên phải, nơi liệt kê các cửa sổ bật lên "bị chặn".
Điều tôi muốn làm là có thể biết liệu cửa sổ bật lên có bị chặn bởi trình chặn cửa sổ bật lên của Chrome hay không. Tôi cố gắng tránh sự dòm ngó của trình duyệt để có lợi cho việc phát hiện tính năng. Có cách nào để làm điều này mà không bị trình duyệt đánh hơi không?
Chỉnh sửa : Bây giờ tôi đã cố gắng sử dụng lập newWin.outerHeight
, newWin.left
và tính chất tương tự khác để thực hiện điều này. Google Chrome trả về tất cả các giá trị vị trí và chiều cao là 0 khi cửa sổ bật lên bị chặn.
Thật không may, nó cũng trả về các giá trị tương tự ngay cả khi cửa sổ bật lên thực sự được mở trong một khoảng thời gian không xác định. Sau một khoảng thời gian kỳ diệu (vài giây trong thử nghiệm của tôi), thông tin vị trí và kích thước được trả về dưới dạng các giá trị chính xác. Nói cách khác, tôi vẫn chưa hiểu ra điều này. Bất kỳ trợ giúp sẽ được đánh giá cao.