2009-02-27 9 views
8

मेरे पास पृष्ठ लोड होने पर फ़ोकस का अनुरोध करने के लिए निम्न जावास्क्रिप्ट कहा जा रहा है।सफारी और क्रोम ब्राउज़र के साथ ऑब्जेक्ट फोकस समस्या

यह कोड फ़ायरफ़ॉक्स और आई 7 के साथ 100% ठीक काम करता है, लेकिन क्रोम और सफारी बिल्कुल ध्यान केंद्रित नहीं कर रहे हैं। इसे सभी ब्राउज़रों के साथ कैसे काम करें?

document.getElementById("MyFlashFile").focus(); 
+0

यह अभी भी Windows के लिए Chrome की वर्तमान निर्माण में काम नहीं कर रहा (संस्करण 28.0.1500.72 मी) प्रदान की समाधानों में से कोई भी या तो काम सेट करना होगा। – Josh

उत्तर

0

सुनिश्चित करें के बाद पूरे पेज गाया कर दिया गया है इस कोड को बुलाया जा रहा है। इसे शायद एचटीएमएल के ऊपर बुलाया जा रहा है, यह संदर्भित करता है, इसलिए तत्व अभी तक मौजूद नहीं होगा।

विभिन्न जावास्क्रिप्ट ढांचे में आपको DOM is ready पर बताए जाने के लिए उपयोगिताएं हैं।

4

दुर्भाग्यवश यह सुनिश्चित करने का कोई तरीका नहीं है कि आप सभी ब्राउज़रों में काम करने वाली फ्लैश फ़ाइल पर फ़ोकस सेट कर सकें। आईई और फ़ायरफ़ॉक्स ने इस समस्या को हल किया है (अधिकांश भाग के लिए), लेकिन क्रोम और सफारी दोनों वेबकिट के आधार पर हैं जिनके पास समाधान नहीं है।

यदि आपने कभी भी YouTube या अन्य वीडियो/फ्लैश साइट पर ध्यान दिया है कि पहली चीज़ जो आप देखते हैं वह खिलाड़ी पर क्लिक करने के लिए लुभाने के लिए कुछ है, जो इस समस्या के कारण है।

एक डेवलपर एक चालाक कामकाज के साथ आया, लेकिन इसमें आपकी फ़्लैश फ़ाइल में कुछ एक्शनस्क्रिप्ट जोड़ना शामिल है, यदि आप एक सामान्य खिलाड़ी बना रहे हैं तो यह गधे में दर्द हो सकता है।

गैरी बिशप: Fixing Firefox Flash Foolishness

समाधान का एक अन्य तरह अपारदर्शी करने के लिए अपने wmode सेट करने के लिए है। मैंने कुछ परिस्थितियों में यह काम किया है, लेकिन पाठ क्षेत्रों में कर्सर को पेंच कर देगा। मुझे इसके साथ बहुत भाग्य नहीं मिला है, लेकिन आप इसे एक शॉट दे सकते हैं।

आप bugzilla पर फ़ोकस बग के बारे में अधिक जानकारी प्राप्त कर सकते हैं।

+0

एडम, नीचे क्लाउडियो सिल्वा के समाधान की जांच करें। यह मेरे लिए काम किया :)। – Anvaka

4

ऐसा लगता है वहाँ क्रोम में एक बग है कि: "। Window.document.getElementById ('swfID') ध्यान केंद्रित() फ्लैश वस्तुओं के लिए काम नहीं कर रहा"

http://code.google.com/p/chromium/issues/detail?id=27868

मैं एक समाधान खोजने के लिए करने की कोशिश की किया है लेकिन मैं एक खोजने के लिए सक्षम नहीं था, (

सादर, ईसाई

16

यह मुझे इंटरनेट खोजने में घंटों लग गए, लेकिन अंत में मुझे एक समाधान मिला जो आईई, फ़ायरफ़ॉक्स, क्रोम और सफारी के नवीनतम संस्करणों पर काम करता है। निम्नलिखित कोड भलाई के लिए समस्या का हल:

<head> 
    <script type="text/javascript" src="swfobject.js"></script> 
    <script> 
    function setFocusOnFlash() { 
     var f=swfobject.getObjectById('myFlashObjectId'); 
     if (f) { f.tabIndex = 0; f.focus(); } 
    } 
    </script> 
</head> 
<body onload="setFocusOnFlash()"> 

इस उदाहरण में कल्पना फ्लैश SWFObject लाइब्रेरी का उपयोग कर एम्बेडेड है। यदि नहीं, तो आपको एफ वैरिएबल को ऑब्जेक्ट या एम्बेड टैग पर सेट करना चाहिए जिसमें फ्लैश मूवी है।

संपादित मई 2012 पर 5: ठीक है, दुर्भाग्य से ऐसा लगता है कि tabIndex वैकल्पिक हल नहीं रह गया है ब्राउज़र (क्रोम/सफारी) और ऑपरेटिंग सिस्टम के सभी संयोजनों के लिए काम करता है। उदाहरण के लिए, वर्तमान में विंडोज़ पर क्रोम 18 विफल रहता है।

समस्या का संकल्प का दर्जा प्राप्त करने के लिए, ईसाई जंक द्वारा प्रदान की नीचे दिए गए लिंक, देखें।

+0

यह मेरे लिए काम नहीं करता है। GetObjectById() के लिए निर्दिष्ट आईडी क्या है? SwfObject को attributes.id या swfobject.embedSWF() कॉल के दूसरे तर्क के माध्यम से प्रदान की गई आईडी? – BadmintonCat

+0

सिल्वा आपका समाधान अद्भुत है! मैं महीने के लिए इस समस्या का हल ढूंढ रहा हूं। आखिरकार मैंने ढूंढ लिया। पोस्ट के लिए धन्यवाद। -Chris – cnanders

+0

मेरे लिए भी काम नहीं कर रहा है। एक परीक्षण के रूप में, मैंने 'if' कथन में एक चेतावनी डालने का प्रयास किया। अलर्ट दिखाता है, लेकिन फ्लैश केंद्रित नहीं है। मैंने केवल एक टेक्स्ट बॉक्स (कोई फ्लैश) के साथ एक साधारण पृष्ठ बनाने की कोशिश की, और उस टेक्स्ट बॉक्स पर फ़ोकस सेट करना, जिस पर डीआईडी ​​काम करता है, लेकिन फ्लैश पेज के लिए नहीं। मैंने 'swfobject.getObjectById' के बजाय 'document.getElementById' का उपयोग करने का भी प्रयास किया, जो अभी भी एक ही परिणाम था। तो ऐसा लगता है कि कुछ और गलत है, क्योंकि हम जानते हैं कि 'फोकस()' फ़ंक्शन काम करता है और कहलाता है। यह सब आईई और एफएफ के साथ काम करता है, लेकिन क्रोम या सफारी के लिए नहीं। कोई सुझाव? – Travesty3

1

क्लाउडियो सिल्वा जवाब देने के लिए इसके अलावा, आप wmode="opaque"

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