2013-01-17 54 views
8

मैं एक संवाद खोलूंगा जिसमें एक आईफ्रेम होगा, फिर संवाद खोले जाने के बाद आईफ्रेम के अंदर फोकस सेट करें।फ़ायरफ़ॉक्स में एक आईफ्रेम में फोकस

वर्तमान में, मैं जब सामग्री भरी हुई है आइफ्रेम पर ध्यान केंद्रित करने की कोशिश:

<iframe src="../credits.html" onload="this.contentWindow.focus()"></iframe> 

यह फ़ायरफ़ॉक्स के अलावा सभी ब्राउज़रों के लिए ठीक काम करता है, और मैं क्यों समझ में नहीं आता।

क्या कोई मुझे बता सकता है क्यों? धन्यवाद

+1

मैं यह भी जानना चाहते हैं कर की कोशिश करें। यह 2015 है और फ़ायरफ़ॉक्स एक आईफ्रेम को स्वयं या उसके अंदर कुछ भी ध्यान केंद्रित करने की अनुमति नहीं देता है। फ़ायरफ़ॉक्स में यह बेहद सरल पहेली काम नहीं करता है: http://jsfiddle.net/4b32fgd8/ – user2867288

+0

https://stackoverflow.com/questions/1508348/set-focus-to-iframe-body-content-in- के संभावित डुप्लिकेट फ़ायरफ़ॉक्स? rq = 1 –

+0

@ user2867288 आपका पहेली काम नहीं करता है क्योंकि शायद जेएसफ़िल्ड अपने कोड संपादकों में फोकस सेट कर रहा है, या अन्यथा फोकस चोरी कर रहा है ताकि आपका फ्रेम नहीं हो सके। मैं इस समस्या को हमारे जेएसएफडल को पुन: उत्पन्न नहीं कर सकता, यहां तक ​​कि यह कोड भी काम करता है: 'iframe src =" https://fiddle.jshell.net/4b32fgd8/show/ ">' –

उत्तर

3

फ़ायरफ़ॉक्स नहीं contentWindow संपत्ति के लिए, आप contentDocument

अद्यतन का उपयोग करना चाहिए लगता है:

<html> 
<head> 
    <title></title> 
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script> 
    <script type="text/javascript"> 
$(function() { 
    $("#xframe").bind("load", function(){ 
     $(this).contents().find("#xa").focus(); 
    }); 
}); 

    </script> 
</head> 
<body> 
<iframe id="xframe" src="./y.html"></iframe> 
</body> 
</html> 

में:

एक छोटी सी बहस मैं एक बेहतर समाधान के साथ आया था के बाद यह उदाहरण, मुझे लगता है कि y.html के अंदर एक इनपुट फ़ील्ड है जिसमें "xa" आईडी है। यह क्रोम और फ़ायरफ़ॉक्स दोनों पर काम किया।

पुराना जवाब

भी अच्छी बात आप jQuery, की तरह कुछ का उपयोग करना चाहिए:

<html> 
<head> 
    <title></title> 
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
    $("#xframe").focus(); 
    }); 
    </script> 
</head> 
<body> 
<iframe id="xframe" src="./y.html"></iframe> 
</body> 
</html> 

अगर आइफ्रेम तैयार है बेशक आप कुछ अतिरिक्त जांच कर सकता है देखने के लिए।

अधिक जानकारी यहाँ http://www.w3schools.com/jsref/prop_frame_contentwindow.asp

+0

मुझे लगता है कि मेरे पास जो सवाल है, वह फ्रेम फ़ायरफ़ॉक्स में फ़ोकस कैसे करता है इसके आधार पर और अधिक है। जैसे आप इस jsfiddle कैसे फ़ायरफ़ॉक्स में काम करते हैं? http://jsfiddle.net/4b32fgd8/ – user2867288

+0

यह jsfiddle पर काम नहीं कर रहा है क्योंकि कुछ और ध्यान केंद्रित कर रहा है। यदि आप इसे पूर्णस्क्रीन पर चलाते हैं, तो यह काम करेगा: http://jsfiddle.net/4b32fgd8/show/ – rfsbsb

+0

फिर यह पूर्णस्क्रीन के बिना क्यों काम नहीं करता है? http://jsfiddle.net/4b32fgd8/1/ – user2867288

1

पाया जा सकता है इस का उपयोग कर jQuery

// focus an input in iframe 
$('#xframe').contents().find('input').get(0).focus() 


// or simply iframe window 
var iframe= $('#xframe')[0]; 
var iframewindow= iframe.contentWindow?  iframe.contentWindow :  iframe.contentDocument.defaultView; 
iframewindow.focus() 
+0

iframe लोड इवेंट पर इस कोड का प्रयोग करें –