मैं स्क्रिप्ट पूरी तरह से लोड होने के बाद कुछ करने की कोशिश कर रहा हूं। (IE8)गतिशील रूप से स्क्रिप्ट बनाना: readyState कभी भी "पूर्ण"
स्क्रिप्ट मैं परीक्षण के लिए उपयोग: http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
और अवैध एक: http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.minaaaaaaaa.js
कोड ...
var script = create the element and append to head...
// this works fine with FF/Chrome/...
script.onload = function() {alert('script loading complete');}
script.onerror = function() {alert('error loading script');}
// and for IE
script.onreadystatechange = function() {
// this will alert 1.loading 2.loaded
alert(this.readyState);
// this never works
if(this.readyState == 'complete') {alert('script loading complete');}
// this works with either a valid or INVALID url
else if(this.readyState == 'loaded') {alert('script loaded');}
};
मेरे मामले में, कभी नहीं "पूर्ण" पता चलता है, "लोड" दिखाता है भले ही एक यूआरएल अमान्य है। तो यह बताने का कोई तरीका नहीं है कि आईई के तहत एक स्क्रिप्ट को सीधे लोड किया गया है या नहीं।
क्या मैं कुछ गलत कर रहा हूं? मैं पूरी स्थिति कैसे प्राप्त नहीं करूं?
अद्यतन
ठीक है, मैं तो बस कुछ लेख पढ़ सकते हैं और ऐसा लगता है कि readyState स्क्रिप्ट लोड हो रहा है पता लगाने के लिए एक विश्वसनीय तरीका नहीं है।
तो ऐसा करने का एक और तरीका है? jQuery के बिना, लेकिन शुद्ध जावास्क्रिप्ट।
मुझे यकीन नहीं है कि आप क्या करना चाहते हैं, लेकिन मैं स्क्रिप्ट को गतिशील रूप से लोड करने के तरीके के बारे में 'jQuery # getScript' में देखने का सुझाव देता हूं। सबसे महत्वपूर्ण बात यह है कि, AJAX पैटर्न का उपयोग करने से आपको HTTP त्रुटियों के लिए परीक्षण करने की सुविधा मिलती है जैसा आपको लगता है। यह नहीं कर सकता - afaik - 'स्क्रिप्ट' टैग पर DOM 'ईवेंट' का उपयोग करके पूरा किया जा सकता है। – FK82
इनपुट के लिए धन्यवाद, एफके 82। मैं बस 100% सुनिश्चित करना चाहता हूं कि लिपि लोड हो गई है। जैसा कि मैंने कहा, एफएफ/क्रोम में, अधिभार और आतंक पूरी तरह से काम करता है। लेकिन आईई के तहत, भले ही एक स्क्रिप्ट यूआरएल अमान्य है (या शायद समय समाप्त हो), तैयार स्टार्ट अभी भी लोड हो जाता है। कारण मैं शुद्ध जावास्क्रिप्ट का उपयोग करना चाहता हूं क्योंकि मैं यह सुनिश्चित करना चाहता हूं कि jQuery पहले सीडीएन से सही ढंग से लोड हो, और फिर सामान करने के लिए jQuery का उपयोग करें। और हाँ, मुझे यह भी लगता है कि यह AJAX तरीके से जाना चाहिए। (कोशिश नहीं की है) – pepsi600
कृपया मेरे उत्तर पर एक नज़र डालें। आप AJAX/XHR ('XMLHttpRequest') पैटर्न का उपयोग करके विभिन्न HTTP त्रुटियों को पकड़ने में सक्षम होंगे। साथ ही, मेरा मानना है कि क्रॉस-ब्राउज़र संगतता के मामले में यह अधिक स्थिर होगा। – FK82