2010-09-02 17 views
30

लोड करने के बाद HTML पृष्ठ प्रदर्शित करें क्या ब्राउज़र के सभी पृष्ठ पूरी तरह से लोड होने के बाद ब्राउज़र को मजबूर करने का कोई तरीका है (जैसे छवियां, स्क्रिप्ट, सीएसएस, आदि)?पूर्ण

+3

मुझे पूरी तरह से लोड होने से पहले एक पृष्ठ पढ़ने शुरू करने में सक्षम होना पसंद है, खासकर यदि मैं धीमी कनेक्शन पर हूं। –

+6

शायद आप जिस हद तक सुझाव दे रहे हैं (स्क्रिप्ट सहित) नहीं, और मुझे लगता है कि यह खराब डिजाइन की गंध है। तुम ऐसा क्यों करना चाहते हो? – tdammers

+2

@tdammers यह एक खराब डिजाइन क्यों होगा? जैसेयदि पृष्ठ के आधार पर स्थानीयकृत है और ब्राउजर भाषा के अनुसार लोड होने पर भाषा जेएस में बदल जाती है, तो आप अंग्रेजी में पूरे पाठ को कुछ एमएस के लिए देखते हैं और फिर यह बदल जाता है परिभाषित भाषा। एक अन्य उदाहरण टेक्स्ट में प्लेसहोल्डर्स जो आपको जेएस में बदलना चाहिए, वही प्रभाव। – David

उत्तर

44

करने के लिए शरीर में निम्नलिखित सीएसएस के साथ एक div रहा है सबसे आसान काम:

#hideAll 
{ 
    position: fixed; 
    left: 0px; 
    right: 0px; 
    top: 0px; 
    bottom: 0px; 
    background-color: white; 
    z-index: 99; /* Higher than anything else in the document */ 

} 

(ध्यान दें कि position: fixed IE6 में काम नहीं करेगा - मैं ऐसा करने का कोई श्योर-फायर तरीका के बारे में पता कि ब्राउज़र में)

(सीधे के बाद उद्घाटन body टैग तो जैसे DIV जोड़े):

<div style="display: none" id="hideAll">&nbsp;</div> 

DIV सीधे के बाद दिखाने :

<script type="text/javascript"> 
    document.getElementById("hideAll").style.display = "block"; 
</script> 

और इसे छिपाने onload:

window.onload = function() 
    { document.getElementById("hideAll").style.display = "none"; } 

या jQuery

$(window).load(function() { document.getElementById("hideAll").style.display = "none"; }); 

इस दृष्टिकोण का उपयोग कर लाभ यह है कि यह भी ग्राहकों को जो JavaScript बंद कर दी के लिए कार्य करेंगे। यह किसी भी झिलमिलाहट या अन्य दुष्प्रभावों का कारण नहीं होना चाहिए, लेकिन इसका परीक्षण नहीं किया जा रहा है, मैं इसे हर ब्राउज़र के लिए पूरी तरह से गारंटी नहीं दे सकता।

+1

चूंकि आप इसे आईडी द्वारा कॉल कर रहे हैं, '.hideAll' को' # hideAll' – aularon

+0

@aularon true, good point ठीक करें। –

+7

व्यक्तिगत रूप से मुझे लगता है कि या तो 6 यानी समर्थन काटने का समय .. – Jakub

7

पेज

#loading-mask { 
    background-color: white; 
    height: 100%; 
    left: 0; 
    position: fixed; 
    top: 0; 
    width: 100%; 
    z-index: 9999; 
} 

पर किसी ओवरले रखा और फिर एक window.onload हैंडलर में उस तत्व को हटाने या, छिपाने यह

window.onload=function() { 
    document.getElementById('loading-mask').style.display='none'; 
} 
बेशक

आप अपने JavaScript लाइब्रेरी (jQuery, प्रोटोटाइप का उपयोग करना चाहिए। ।) यदि आप लाइब्रेरी का उपयोग कर रहे हैं तो विशिष्ट ऑनलोड हैंडलर।

+0

ध्यान दें कि 'स्थिति: निश्चित' IE6 में काम नहीं करेगा। –

0

इसके लिए जावास्क्रिप्ट का उपयोग करने का प्रयास करें! ऐसा करने का सबसे अच्छा और आसान तरीका लगता है। HTML पृष्ठ लोड होने के बाद ही आप HTML कोड निष्पादित करने के लिए इनबिल्ट funcn प्राप्त करेंगे।

वरना जहां एक घटना ब्राउज़र की एक विशेष स्थिति में होता है आप राज्य आधारित प्रोग्रामिंग का उपयोग कर सकते ..

3

आप भी इस के लिए जा सकते हैं .... यह केवल HTML अनुभाग में दिखाई देगा एक बार जावास्क्रिप्ट लोड हो जाए ।

<!-- Adds the hidden style and removes it when javascript has loaded --> 
<style type="text/css"> 
    .hideAll { 
     visibility:hidden; 
    } 
</style> 

<script type="text/javascript"> 
    $(window).load(function() { 
     $("#tabs").removeClass("hideAll"); 
    }); 
</script> 

<div id="tabs" class="hideAll"> 
    ##Content## 
</div> 
+1

सरल और काम करता है ... (वाई) – Hemantsom

+1

'$ (विंडो) .on (" लोड ", फ़ंक्शन() {' यदि आप jquery 3. – cyrillk

+0

का उपयोग कर रहे हैं मेरे लिए काम नहीं करता है ... – parsecer

4

प्रारंभ में शरीर को छुपाएं, और फिर लोड होने के बाद इसे jQuery के साथ दिखाएं।

body { 
    display: none; 
} 

$(function() { 
    $('body').show(); 
}); // end ready 

इसके अलावा, यह सबसे अच्छा होगा $('body').show(); अपने पिछले और मुख्य .js फ़ाइल में अंतिम पंक्ति के रूप है।

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