2011-12-08 27 views
6

Chạy vào vấn đề sau cụ thể trong Safari 5.1.2 khi cố gắng sử dụng api toàn màn hình javascript.webkitRequestFullScreen không thành công khi chuyển Element.ALLOW_KEYBOARD_INPUT trong Safari 5.1.2

Bằng cách sao chép và dán các dòng sau vào trình duyệt của bạn trên trang được tải, bạn có thể thấy hiệu ứng.

này hoạt động trong Chrome 15 và Safari 5.1.2:

javascript:document.querySelector('body').webkitRequestFullScreen(); 

này hoạt động trong Chrome 15 nhưng không âm thầm trong Safari 5.1.2:

javascript:document.querySelector('body').webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); 

ALLOW_KEYBOARD_INPUT có vẻ như nó nên làm việc trong Safari, theo tài liệu tại đây: http://developer.apple.com/library/safari/#documentation/WebKit/Reference/ElementClassRef/Element/Element.html

Bất kỳ ý tưởng nào tại sao tính năng này không hoạt động?

Trả lời

9

Lỗi Safari này được biết đến. Nó có thể được đánh hơi trong quá trình chuyển đổi toàn màn hình:

someElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); 
if (!document.webkitCurrentFullScreenElement) { 
    // Element.ALLOW_KEYBOARD_INPUT does not work, document is not in full screen mode 
} 

Sử dụng thời gian thực đánh hơi và mã của bạn sẽ hỗ trợ sửa lỗi trong tương lai trong Safari.

+2

tôi phải timeout 'cái sở hữu đọc ít nhất 80ms trong Chrome webkitCurrentFullScreenElement', trước đó nó là null (dường như có liên quan với hoạt ảnh mà Chrome sử dụng để chuyển sang chế độ toàn màn hình). Không có gì tôi có thể kiểm tra trực tiếp? – Ruben

+0

Có 'document.webkitIsFullScreen' nhưng tôi đã thử nghiệm và nó cũng yêu cầu hết thời gian chờ trước khi biến thành true trong Chrome. Tuy nhiên, Chrome không thực sự yêu cầu đánh hơi vì nó hoàn toàn không có màn hình. – luwes

1

Tôi vừa gặp phải vấn đề tương tự, và điều này chắc chắn là một lỗi.

Đây có thể là trường hợp the Undetectables. Đoán chúng ta sẽ phải sử dụng trình duyệt tốt của trình duyệt.

...(/Safari/.test(navigator.userAgent) ? undefined : Element.ALLOW_KEYBOARD_INPUT) 

[sửa] ... trong trường hợp không thể nhập bàn phím chữ thường. Vì vậy, tôi đoán tốt nhất là nên cắt chế độ toàn màn hình trong Safari lúc này [/ edit]

Hãy nhớ rằng API toàn màn hình đang ở giai đoạn rất sớm và không được sử dụng trong sản xuất

3

someElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT) hoạt động trong chrome.

someElement.webkitRequestFullScreen() công trình trong safari 5.1.7

Tất cả các thử nghiệm cơ bản trên cửa sổ 7.

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