Có cách nào phát hiện đáng tin cậy nếu trình duyệt đang chạy ở chế độ toàn màn hình không? Tôi chắc rằng không có bất kỳ API trình duyệt nào tôi có thể truy vấn, nhưng có ai đã làm việc đó bằng cách kiểm tra và so sánh các số đo chiều cao/chiều rộng nhất định do DOM hiển thị không? Ngay cả khi nó chỉ hoạt động đối với một số trình duyệt nhất định, tôi quan tâm đến việc nghe về nó.Phát hiện xem trình duyệt có ở chế độ toàn màn hình hay không
Trả lời
Điều gì về việc xác định khoảng cách giữa chiều rộng khung nhìn và chiều rộng độ phân giải cũng như chiều cao tương tự. Nếu đó là một lượng nhỏ pixel (đặc biệt là đối với chiều cao), thì có thể ở chế độ toàn màn hình.
Tuy nhiên, điều này sẽ không bao giờ đáng tin cậy.
Nếu trình duyệt thực sự chạy toàn màn hình, sự khác biệt giữa kích thước khung nhìn và độ phân giải bằng 0. Trừ khi bạn đang chạy nhiều màn hình, tôi đoán vậy. –
Thanh cuộn có được tính là một phần của chế độ xem không? –
Tôi không chắc chắn - bạn sẽ phải thử nghiệm. – alex
Opera xử lý toàn màn hình dưới dạng loại phương tiện CSS khác. Họ gọi nó là Opera Show, và bạn có thể kiểm soát nó cho mình một cách dễ dàng:
@media projection {
/* these rules only apply in full screen mode */
}
Kết hợp với [email protected], cá nhân tôi đã tìm thấy nó cực kỳ tiện dụng.
này làm việc cho tất cả các trình duyệt mới:
if (!window.screenTop && !window.screenY) {
alert('Browser is in fullscreen');
}
Thật không may, thử nghiệm này đã biến không đáng tin cậy. –
Điều này dường như hoạt động: nếu (screen.height === window.outerHeight) { cảnh báo ('Trình duyệt ở chế độ toàn màn hình'); } –
Không, giải pháp thứ hai không hoạt động trong Chrome 23, khi toàn màn hình qua API bật, nhưng người dùng tắt nó đi bằng Ctrl + alt + F. – Ruben
Chrome 15, Firefox 10 và Safari 5.1 hiện nay cung cấp API để lập trình kích hoạt chế độ toàn màn hình. Chế độ toàn màn hình được kích hoạt theo cách này cung cấp các sự kiện để phát hiện các thay đổi toàn màn hình và các lớp giả CSS để tạo kiểu cho các phần tử toàn màn hình.
Xem this hacks.mozilla.org blog post để biết chi tiết.
Tuy nhiên, có cách nào để phát hiện người dùng đã nhập toàn màn hình bằng trình duyệt được cung cấp có nghĩa là (như F11 hoặc menu bên cạnh Thu phóng trong Chrome) không? – Suma
Firefox 3+ cung cấp thuộc tính không chuẩn trên đối tượng window
báo cáo xem trình duyệt có ở chế độ toàn màn hình hay không: window.fullScreen
.
Rất tuyệt! Điều này hoạt động đáng tin cậy trong Firefox. Đây chắc chắn là một phần của giải pháp. –
Đối với Safari trên iOS có thể sử dụng:
if (window.navigator.standalone) {
alert("Full Screen");
}
Trong Chrome ít nhất:
onkeydown
thể được sử dụng để phát hiện các phím F11 được ép để nhập toàn màn hình. onkeyup
có thể được sử dụng để phát hiện phím F11 đang được nhấn để thoát chế độ toàn màn hình.
Sử dụng mà kết hợp với kiểm tra keyCode == 122
Phần khó khăn sẽ được báo cho KeyDown/KeyUp không để thực thi mã của nó nếu người kia chỉ cần làm.
Điều này không giúp ích nếu người dùng đã nhập toàn màn hình bằng F11 trước khi họ điều hướng đến trang web đang chạy javascript đó. –
Có KHÔNG của tôi qua trình duyệt biến thể:
<!DOCTYPE html>
<html>
<head>
<title>Fullscreen</title>
</head>
<body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
var fullscreen = $(window).height() + 1 >= screen.height;
$(window).on('resize', function() {
if (!fullscreen) {
setTimeout(function(heightStamp) {
if (!fullscreen && $(window).height() === heightStamp && heightStamp + 1 >= screen.height) {
fullscreen = true;
$('body').prepend("<div>" + $(window).height() + " | " + screen.height + " | fullscreen ON</div>");
}
}, 500, $(window).height());
} else {
setTimeout(function(heightStamp) {
if (fullscreen && $(window).height() === heightStamp && heightStamp + 1 < screen.height) {
fullscreen = false;
$('body').prepend("<div>" + $(window).height() + " | " + screen.height + " | fullscreen OFF</div>");
}
}, 500, $(window).height());
}
});
</script>
</body>
</html>
Tested on:
Kubuntu 13.10:
Firefox 27 (<!DOCTYPE html>
là cần thiết, kịch bản một cách chính xác làm việc với dual-màn hình), Chrome 33, Rekonq - vượt qua
Win 7:
Firefox 27, Chrome 33, Opera 12, Opera 20, IE 10 - pass
IE < 10 - thất bại
Phải. Hoàn toàn muộn vào ngày này ...
Kể từ ngày 25 tháng 11 năm 2014 (Thời gian viết), các yếu tố có thể yêu cầu truy cập toàn màn hình và sau đó kiểm soát vào/thoát chế độ toàn màn hình.
MDN Giải thích ở đây: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode
Đơn giản giải thích bởi David Walsh: http://davidwalsh.name/fullscreen
Chỉ cần nghĩ rằng tôi muốn thêm thruppence tôi để tiết kiệm bất cứ ai đập đầu họ. Câu trả lời đầu tiên là tuyệt vời nếu bạn có toàn quyền kiểm soát quá trình, đó là bạn bắt đầu quá trình toàn màn hình trong mã. Vô dụng nếu ai đó làm điều này bằng cách nhấn F11.
Tia hy vọng trên đường chân trời đến dưới dạng đề xuất W3C này là http://www.w3.org/TR/view-mode/ sẽ cho phép phát hiện cửa sổ, nổi (không có chrome), phóng to, thu nhỏ và toàn màn hình thông qua truy vấn phương tiện (tất nhiên có nghĩa là window.matchMedia và liên kết).
Tôi đã nhìn thấy các dấu hiệu cho thấy nó đang trong quá trình triển khai với tiền tố -webkit và -moz nhưng dường như chưa xuất hiện trong quá trình sản xuất.
Vì vậy, không, không có giải pháp nhưng hy vọng tôi sẽ tiết kiệm một người nào đó chạy rất nhiều xung quanh trước khi chạm vào cùng một bức tường.
PS *: - moz toàn màn hình có doo-dah là tốt, nhưng tốt đẹp để biết về.
giải pháp của tôi là:
var fullscreenCount = 0;
var changeHandler = function() {
fullscreenCount ++;
if(fullscreenCount % 2 === 0)
{
console.log('fullscreen exit');
}
else
{
console.log('fullscreened');
}
}
document.addEventListener("fullscreenchange", changeHandler, false);
document.addEventListener("webkitfullscreenchange", changeHandler, false);
document.addEventListener("mozfullscreenchange", changeHandler, false);
document.addEventListener("MSFullscreenChanges", changeHandler, false);
tài window.innerHeight
và screen.availHeight
. Ngoài ra chiều rộng.
window.onresize = function(event) {
if (window.outerWidth === screen.availWidth && window.outerHeight === screen.availHeight) {
console.log("This is your MOMENT of fullscreen: " + Date());
}
Bạn có thể kiểm tra xem document.fullscreenElement
không phải là null để xác định xem chế độ toàn màn hình trên. Bạn cần phải cung cấp tiền tố fullscreenElement
cho phù hợp. Tôi sẽ sử dụng một cái gì đó như thế này:
var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement ||
document.webkitFullscreenElement || document.msFullscreenElement;
https://msdn.microsoft.com/en-us/library/dn312066(v=vs.85).aspx có một ví dụ điển hình cho điều này mà tôi trích dẫn dưới đây:
document.addEventListener("fullscreenChange", function() {
if (fullscreenElement != null) {
console.info("Went full screen");
} else {
console.info("Exited full screen");
}
});
Đây là giải pháp mà tôi đã đến ... Tôi đã viết nó như một mô-đun es6 nhưng mã nên khá đơn giản.
/**
* Created by sam on 9/9/16.
*/
import $ from "jquery"
function isFullScreenWebkit(){
return $("*:-webkit-full-screen").length > 0;
}
function isFullScreenMozilla(){
return $("*:-moz-full-screen").length > 0;
}
function isFullScreenMicrosoft(){
return $("*:-ms-fullscreen").length > 0;
}
function isFullScreen(){
// Fastist way
var result =
document.fullscreenElement ||
document.mozFullScreenElement ||
document.webkitFullscreenElement ||
document.msFullscreenElement;
if(result) return true;
// A fallback
try{
return isFullScreenMicrosoft();
}catch(ex){}
try{
return isFullScreenMozilla();
}catch(ex){}
try{
return isFullScreenWebkit();
}catch(ex){}
console.log("This browser is not supported, sorry!");
return false;
}
window.isFullScreen = isFullScreen;
export default isFullScreen;
- 1. MPMoviePlayerController không phát phim ở chế độ toàn màn hình
- 2. Video không phát ở chế độ toàn màn hình
- 3. YotubePlayerHỗ trợFragment xem toàn màn hình ở chế độ ngang
- 4. Phát hiện xem chế độ toàn màn hình có được cho phép trong ActionScript 3.0 không?
- 5. Phát hiện chế độ toàn màn hình trong Windows
- 6. Trang web có thể buộc trình duyệt chuyển sang chế độ toàn màn hình không?
- 7. Phát hiện trình duyệt di động (không chỉ iPhone) ở chế độ xem python
- 8. Tại sao ImageView không ở chế độ toàn màn hình?
- 9. Xác định xem chế độ xem có trên màn hình hay không - Android
- 10. Ẩn Tiêu đề ở chế độ Toàn màn hình?
- 11. Bàn phím mở ở chế độ toàn màn hình ở chế độ ngang
- 12. gVim 7.3 ở chế độ toàn màn hình
- 13. Phát hiện nếu người dùng có bất kỳ ứng dụng nào đang chạy ở chế độ toàn màn hình
- 14. presentModalViewController trong chi tiết UISplitViewControllersXem không hiển thị chế độ xem ở chế độ toàn màn hình
- 15. X11/GLX - Chế độ toàn màn hình?
- 16. Chế độ xem toàn màn hình Gridview bị cắt
- 17. Cách khởi chạy trình duyệt ở chế độ nguồn xem?
- 18. Chế độ xem hiển thị ở chế độ xem cuộn trên màn hình
- 19. Phát hiện ứng dụng toàn màn hình trên mac
- 20. Làm cách nào để buộc video phát ở chế độ toàn màn hình trong trình phát youtube?
- 21. Chuyển từ chế độ toàn màn hình sang pop/slide toàn màn hình
- 22. Chế độ toàn màn hình của Internet Explorer?
- 23. Chuyển đổi chế độ toàn màn hình
- 24. Phát hiện xem trình duyệt di động có hỗ trợ tràn hay không: di chuyển
- 25. Bạn có thể chạy ứng dụng VB ở chế độ toàn màn hình không?
- 26. Android làm cho hộp thoại xuất hiện ở chế độ toàn màn hình
- 27. Video HTML5 không ẩn điều khiển ở chế độ toàn màn hình trong Chrome
- 28. Chế độ xem web ca cao - toàn màn hình video html5 không hoạt động
- 29. video iframe sẽ không chuyển sang chế độ toàn màn hình trong chế độ xem web của Android
- 30. Làm thế nào để phát hiện xem iPhone có màn hình võng mạc hay không?
Tại sao bạn cần phát hiện điều này? Có lẽ có một giải pháp cho vấn đề của bạn? – Marc
Khi trình duyệt ở chế độ toàn màn hình, không có cách nào nhìn thấy thời gian được báo cáo bởi hệ điều hành (ví dụ: đồng hồ trong vùng thông báo trên thanh tác vụ trên Windows).Việc có thể thấy thời gian hiện tại có thể quan trọng đối với người dùng ứng dụng web của chúng tôi, vì vậy chúng tôi muốn có thể hiển thị đồng hồ khi trình duyệt được kiểm tra toàn màn hình. Màn hình bất động sản là một phí bảo hiểm khi ứng dụng của chúng tôi được chạy ở độ phân giải thấp hơn như 1024 * 768 vì vậy chúng tôi muốn chỉ hiển thị đồng hồ khi trình duyệt được kiểm tra đầy đủ nếu có thể. –
Điều gì sẽ xảy ra nếu họ thường không có đồng hồ trên màn hình của họ và cũng không sử dụng trình duyệt của họ toàn màn hình? Bạn có chắc bạn là người chịu trách nhiệm cho họ biết thời gian hiện tại? –