2013-04-28 44 views
5

Sau khi chuyển sang chế độ toàn màn hình (được thử trên chrome và safari), tôi không thể nhập bất kỳ chữ cái hoặc số nào vào đầu vào văn bản, nhưng tôi vẫn có thể nhập các ký tự đặc biệt như *¨%£ nhưng không có chữ đơn giản ...Không thể nhập bất kỳ chữ cái hoặc chữ số nào trong chế độ toàn màn hình trên trình duyệt webkit

mã này là thực sự rất đơn giản:

HTML

<button type="button" id="fullScreen">LAUNCH FULLSCREEN</button> 
<input type="text" /> 

JS

function launchFullScreen(element) { 
    if(element.requestFullScreen) { 
    element.requestFullScreen(); 
    } else if(element.mozRequestFullScreen) { 
    element.mozRequestFullScreen(); 
    } else if(element.webkitRequestFullScreen) { 
    element.webkitRequestFullScreen(); 
    } 
} 

document.getElementById("fullScreen").addEventListener("mousedown", function(){ 
    launchFullScreen(document.documentElement); 
}, false); 

Như Jan Dvorak đã đề cập, vấn đề chỉ xuất hiện khi sử dụng chức năng js, lỗi không xuất hiện khi sử dụng trình duyệt build-in nút toàn màn hình/tắt

Nhìn thấy nó trong hành động:

http://jsfiddle.net/QwqT7/show/

CẬP NHẬT 2:

Chỉ cần thử nghiệm trên Firefox cho mac, không có sự cố ở chế độ toàn màn hình. Dường như vấn đề chỉ là webkit.

+1

xác nhận, lạ. Trông giống như một con bọ. http://jsfiddle.net/QwqT7/show/ –

+0

Nó chỉ xảy ra nếu tôi sử dụng nút để đi toàn màn hình, mặc dù. Nó hoạt động chính xác khi thực hiện 'F11' –

+0

bạn nói đúng, tôi sẽ cập nhật câu hỏi và thêm jsfiddle của bạn, cảm ơn – Julian

Trả lời

2

Mozilla note nói:

Vì lý do an ninh, hầu hết các nguyên liệu đầu vào bàn phím đã bị chặn ở chế độ toàn màn hình. Tuy nhiên, trong Google Chrome, bạn có thể yêu cầu hỗ trợ bàn phím bằng cách gọi phương thức có cờ ...

+1

Cảm ơn nó đã giúp tôi giải quyết vấn đề trong Chrome ít nhất. Tôi đã đăng mã của mình, nó có thể giúp người khác. – Julian

3

Đây không phải là giải pháp hoàn hảo, nhưng ít nhất nó sẽ cho phép Chrome phản hồi lệnh bàn phím và cho phép Safari sử dụng toàn màn hình chế độ không có đầu vào chính làm dự phòng.

function launchFullScreen(element) { 
    if(element.requestFullScreen) { 
    element.requestFullScreen(); 
    } else if(element.mozRequestFullScreen) { 
    element.mozRequestFullScreen(); 
    } else if(element.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)){ 
    element.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); 
    } 
    setTimeout(function() { 
    if (!document.webkitCurrentFullScreenElement && element.webkitRequestFullScreen()) { 
     element.webkitRequestFullScreen(); 
    } 
    },100); 
}