2012-09-05 17 views
6

मेरे मोबाइल पर, सफारी में अगर मैं अपने डिफ़ॉल्ट पृष्ठ पर जाता हूं जिसमें alert("Hello") शरीर अधिभार ईवेंट पर है, तो मेरे डिफ़ॉल्ट पृष्ठ के साथ अलर्ट प्रदर्शित करता है पृष्ठभूमि में पूरी तरह से दिखाई देता है। यदि मैं फिर bbc.co.uk उदाहरण के लिए किसी अन्य साइट पर जाता हूं और फिर पता बार में अपने डिफ़ॉल्ट पृष्ठ के लिए अपना वेब पता टाइप करता हूं, तो पृष्ठभूमि में बीबीसी सामग्री के साथ अलर्ट दिखाता है, यह पेज से पहले अलर्ट लोड की तरह है लोड हो गया हैपृष्ठ प्रदर्शित होने से पहले जावास्क्रिप्ट अलर्ट लोड

पूरे पृष्ठ को दिखाई देने के बाद मैं केवल संदेश कैसे दिखा सकता हूं। मैंने पढ़ा है कि window.onload चेतावनी देता है जब तक कि यह चेतावनी ट्रिगर करने से पहले सब कुछ लोड हो जाता है लेकिन मुझे कुछ गलत होना चाहिए क्योंकि व्यवहार नहीं बदलता है। मैं भी कोशिश की है:

$(document).ready(function() { 
    window.onload= alert('Test'); 
}); 

और

<meta http-equiv="Pragma" content="no-cache"/> 

मामले में यह कैश के साथ कुछ है, लेकिन मुझे नहीं लगता कि इस मुद्दे है। कोई विचार ?

धन्यवाद

+0

[के बीच $ अंतर (document) .ready और jQuery में $ (विंडो) .load] (http://web.enavu.com/ दैनिक-टिप/दैनिक-टिप-अंतर-दस्तावेज़-तैयार-और-विंडो-लोड-इन-jquery /) – smilledge

उत्तर

2
$(window).load(function() { 
     alert('Test'); 
}); 
+0

पृष्ठ दृश्यमान होने से पहले भी अलर्ट आता है। संदर्भ पृष्ठ अभी भी पृष्ठभूमि में दिखाई दे रहा है। – mjroodt

+0

मुझे setTimeout फ़ंक्शन के साथ-साथ jquery window.load का उपयोग करना पड़ा है। मुझे नहीं पता कि यह क्यों काम नहीं करता है लेकिन यह मेरे लिए काम करता है। $ (विंडो) .ready (फ़ंक्शन() { सेटटाइमआउट (फ़ंक्शन() {अलर्ट ("टेस्ट")}, 1000); }); – mjroodt

+0

@mjroodt फिर आपने यह जवाब क्यों स्वीकार किया? – showdev

3

अगर आप wanto alrert बॉक्स या तो उपयोग प्रदर्शित window.onload वहाँ उपयोग दोनों का कोई मतलब नहीं है, यहाँ कोड है कि ठीक

window.onload (जो भी लागू किया गया है काम करेगा पुराने ब्राउज़रों में) है, जो आग जब पूरे पृष्ठ लोड

window.onload = function(){ alert('test'); } 

jQuery जो उन दूर सार document.ready प्रदान करता है, और के रूप में आग जल्द ही पेज का DOM तैयार होने

$(document).ready(function() {  
alert('Test'); 
}); 

चेक जवाब से: window.onload vs $(document).ready()

window.onload है निर्मित जावास्क्रिप्ट घटना है, लेकिन उनके कार्यान्वयन ब्राउज़रों में सूक्ष्म quirks था (एफएफ/IE6/IE8/ओपेरा), jQuery दस्तावेज प्रदान करता है। पहले से, जो उन्हें दूर करता है, और जैसे ही पृष्ठ का डोम तैयार होता है (छवियों के लिए इंतजार नहीं करता है)।

document.ready, एक jQuery समारोह है लपेटकर और निम्न इवेंट के लिए स्थिरता प्रदान:

  • document.ondomcontentready/document.ondomcontentloaded - इससे पहले कि एक काफ़ी नया घटना है जो जब दस्तावेज़ के डोम भरी हुई है आग (जो कुछ समय हो सकता है छवियों आदि लोड हो गए हैं); फिर से, IE में और दुनिया के बाकी हिस्सों में थोड़ा अलग
  • और window.onload (जो यहां तक ​​कि पुराने ब्राउज़रों में कार्यान्वित किया जाता है) है, जो आग जब पूरे पृष्ठ लोड (छवियों, शैली, आदि)
+0

निश्चित रूप से यदि दोनों एक साथ अनावश्यक हैं तो दोनों को इसे बहुत जल्दी चलाना नहीं चाहिए ? – Chris

+0

एचटीएमएल दस्तावेज़ लोड होने के बाद 'तैयार' घटना होती है, जब पूरा पृष्ठ प्रस्तुत नहीं किया जाता है ... http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready – smilledge

+0

आह देखें , एक और पोस्टर का जवाब है। आपका उत्तर काम नहीं करेगा क्योंकि आपके द्वारा उद्धृत कोड को ऑनलोड पर असाइन करने से पहले 'अलर्ट (' टेस्ट ') का मूल्यांकन किया जाएगा। आपको ऑनलोड पर फ़ंक्शन पास करने की आवश्यकता है। – Chris

7

आप window.onload पर फ़ंक्शन का संदर्भ पास करते हैं और वास्तविक कॉल नहीं।

कोशिश

window.onload = function(){ 
alert('test'); 
} 
+0

+1 वास्तव में यह बताने के लिए कि क्यों उपयोगकर्ता का कोड अन्य कोड प्रदान करने के बजाय काम नहीं करता है। तथ्य यह है कि इसे घटना में निर्दिष्ट करने से पहले अलर्ट का मूल्यांकन करना एक सूक्ष्म दिखने वाला बग है जो स्पॉट करना मुश्किल है यदि आप विशेष रूप से इसकी तलाश नहीं करते हैं (क्योंकि मानव पर्यवेक्षक जानता है कि इसका क्या अर्थ है और यह इसके बारे में नहीं सोचता है वास्तव में कहते हैं)। – Chris

+0

मैंने यह कोशिश की है और अलर्ट अभी भी पृष्ठभूमि में संदर्भ पृष्ठ के साथ आता है। – mjroodt

-1

<!DOCTYPE html> 
 
<html> 
 
<body onload="show_popup()"> 
 

 
<script> 
 
function show_popup() { 
 
    alert("Popup shows"); 
 
} 
 
</script> 
 

 
</body> 
 
</html>