2011-12-08 12 views
6

जावास्क्रिप्ट पूर्णस्क्रीन एपीआई का उपयोग करने का प्रयास करते समय विशेष रूप से सफारी 5.1.2 में निम्न समस्या में चल रहा है।webkitRequestFullScreen सफारी में Element.ALLOW_KEYBOARD_INPUT को पार करते समय विफल रहता है 5.1.2

लोड किए गए पृष्ठ पर अपने ब्राउज़र में निम्न पंक्तियों की प्रतिलिपि बनाकर चिपकाकर, आप प्रभाव देख सकते हैं।

यह Chrome 15 और सफारी 5.1.2 में काम करता है:

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

यह क्रोम 15 में काम करता है, लेकिन सफारी 5.1.2 में चुपचाप विफल रहता है:

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

ALLOW_KEYBOARD_INPUT लगता है जैसे कि यह में काम करना चाहिए सफारी, यहां दस्तावेज़ीकरण के अनुसार: http://developer.apple.com/library/safari/#documentation/WebKit/Reference/ElementClassRef/Element/Element.html

कोई विचार क्यों यह काम नहीं कर रहा है?

उत्तर

9

यह सफारी बग ज्ञात है। यह पूर्ण स्क्रीन स्विचन के दौरान सूंघा जा सकता है: इस वास्तविक समय सूँघने और इस तरह अपने कोड

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

उपयोग सफारी में भविष्य फिक्सिंग बग का समर्थन करेंगे।

+2

मैं 'webkitCurrentFullScreenElement' संपत्ति क्रोम में कम से कम 80ms के लिए पढ़ने के लिए समय-समाप्त करने के लिए, इससे पहले कि कि यह शून्य है है पर (संबंधित लगता है एनीमेशन के लिए क्रोम पूर्णस्क्रीन जाने के लिए उपयोग करता है)। क्या ऐसा कुछ नहीं है जिसे मैं सीधे देख सकता हूं? – Ruben

+0

'document.webkitIsFullScreen' है लेकिन मैंने परीक्षण किया है और इसे क्रोम में सत्य होने से पहले एक टाइमआउट की भी आवश्यकता है। हालांकि क्रोम को वास्तव में स्नीफिंग की आवश्यकता नहीं है क्योंकि यह पूर्ण स्क्रीन पर भरोसा करता है। – luwes

1

मैं बस एक ही मुद्दे में भाग गया, और यह निश्चित रूप से एक बग है।

यह the Undetectables का मामला हो सकता है। मान लीजिए कि हमें अच्छे ओल 'ब्राउज़र स्नीफिंग का उपयोग करना होगा।

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

[संपादित करें] ... किस मामले में कीबोर्ड इनपुट संभव नहीं है। तो मुझे लगता है कि यह पता किया जा रहा है [/ संपादित करें]

ध्यान रखें कि पूर्ण स्क्रीन API क्षण में एक बहुत ही प्रारंभिक चरण में है समय के लिए सफारी में पूर्ण स्क्रीन मोड में कटौती के लिए सबसे अच्छा है, और उत्पादन में नहीं किया जाना चाहिए

3

someElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT) क्रोम में काम करता है। सफारी में

और someElement.webkitRequestFullScreen() काम करता है 5.1.7

सभी परीक्षण आधार विंडोज़ 7

संबंधित मुद्दे