में प्रदर्शित होने से पहले मौजूद है या नहीं, मैं जावास्क्रिप्ट का उपयोग कर रहा हूं ताकि iframe src को गतिशील यूआरएल पास किया जा सके। लेकिन कभी-कभी यूआरएल मौजूद नहीं होता है, मैं पहले से मौजूद गैर-मौजूद यूआरएल का पता कैसे लगा सकता हूं, ताकि मैं 404 त्रुटि वाले आईफ्रेम को छुपा सकूं।यह पता लगाने के लिए जावास्क्रिप्ट का उपयोग कर रहा है कि यूआरएल आईफ़्रेम
उत्तर
यदि आप 200 बार वापस प्राप्त करते हैं तो इसका अर्थ यह है कि पृष्ठ पर मौजूद है, तो आप पेज पर एक सरल प्राप्त कर सकते हैं और कर सकते हैं। इसे आज़माएं (jQuery का उपयोग करके), फ़ंक्शन सफल पृष्ठ लोड पर सफलता कॉलबैक फ़ंक्शन है। ध्यान दें कि यह केवल XSS को रोकने के लिए आपके डोमेन के भीतर की साइटों पर काम करेगा। अन्य डोमेन प्रबंधित करने पर सर्वर साइड
$.get(
yourURL,
function(data, textStatus, jqXHR) {
//load the iframe here...
}
);
Use a XHR and see if it responds you a 404 or not.
var request = new XMLHttpRequest();
request.open('GET', 'http://www.mozilla.org', true);
request.onreadystatechange = function(){
if (request.readyState === 4){
if (request.status === 404) {
alert("Oh no, it does not exist!");
}
}
};
request.send();
है लेकिन लगता है कि यह केवल एक ही मूल पर काम करेंगे होगा। किसी अन्य होस्ट के लिए, आपको ऐसा करने के लिए use a server-side language करना होगा, जिसे आपको स्वयं ही समझना होगा।
आप AJAX के माध्यम से यूआरएल का परीक्षण कर सकते हैं और स्थिति कोड पढ़ सकते हैं - यह है कि यूआरएल एक ही डोमेन में है।
यदि यह एक दूरस्थ डोमेन है, तो आप अपने डोमेन पर have a server script देख सकते हैं एक दूरस्थ URL देखें।
मेरी कम प्रतिष्ठा के कारण मैं डेरेक 朕 會 功夫 के उत्तर पर टिप्पणी नहीं कर सका। मैंने उस कोड को आजमाया है और यह अच्छी तरह से काम नहीं करता है। डेरेक 朕 會 功夫 के कोड पर तीन मुद्दे हैं।
पहले उस समय async अनुरोध भेजने और उसके संपत्ति 'का दर्जा' बदलने के लिए धीमी अगले अभिव्यक्ति पर अमल करने से है - अगर (request.status === "404")। तो अनुरोध। स्टेटस अंततः, इंटरनेट बैंड के कारण, स्थिति 0 (शून्य) पर बने रहेंगे, और यदि नीचे दिए गए कोड को प्राप्त नहीं किया जाएगा। इसे ठीक करने के लिए आसान है: AJAX अनुरोध के खुले विधि पर 'सत्य' को 'झूठी' में बदलें। इससे आपके कोड पर एक संक्षिप्त (या नहीं) ब्लॉक होगा (सिंक्रोनस कॉल के कारण), लेकिन अगर परीक्षण पर पहुंचने से पहले अनुरोध की स्थिति बदल जाएगी।
दूसरा यह है कि स्थिति एक पूर्णांक है। '===' जावास्क्रिप्ट तुलना ऑपरेटर का उपयोग करके आप तुलना करने की कोशिश कर रहे हैं यदि बाएं तरफ ऑब्जेक्ट दाएं तरफ एक जैसा है। इस काम को करने के लिए दो तरीके हैं:
- 404 से घिरे उद्धरणों को हटाएं, इसे पूर्णांक बनाएं;
- जावास्क्रिप्ट के ऑपरेटर'== 'का प्रयोग करें ताकि आप दो ऑब्जेक्ट समान हों तो परीक्षण करेंगे।
तीसरा यह है कि ऑब्जेक्ट XMLHttpRequest केवल नए ब्राउज़र (फ़ायरफ़ॉक्स, क्रोम और आई 7 +) पर काम करता है। आपको लगता है कि टुकड़ा सभी ब्राउज़रों आप जिस तरह से W3Schools पता चलता है में क्या करना है पर काम करना चाहते हैं: w3schools ajax
कोड है कि वास्तव में मेरे लिए काम किया था:
var request;
if(window.XMLHttpRequest)
request = new XMLHttpRequest();
else
request = new ActiveXObject("Microsoft.XMLHTTP");
request.open('GET', 'http://www.mozilla.org', false);
request.send(); // there will be a 'pause' here until the response to come.
// the object request will be actually modified
if (request.status === 404) {
alert("The page you are trying to reach is not available.");
}
प्लस 1 आपकी कम प्रतिष्ठा के कारण। (और महान जवाब :)) – silver
नहीं नहीं। कृपया W3C से W3 स्कूलों में कुछ भी लिंक न करें। वे किसी भी तरह से संबद्ध नहीं हैं। – IE5Master
बस ध्यान दें कि: मुख्य थ्रेड पर सिंक्रोनस XMLHttpRequest को अंतिम उपयोगकर्ता के अनुभव के हानिकारक प्रभावों के कारण बहिष्कृत किया गया है। अधिक सहायता के लिए, https://xhr.spec.whatwg.org/ देखें। – Aus
मैंने पाया इस में काम किया मेरी परिदृश्य।
jqXHR.success(), jqXHR.error(), और jqXHR.complete() jQuery 1.5 में पेश कॉलबैक विधियों को jQuery 1.8 के रूप में बहिष्कृत किया गया है। अपने कोड को अंतिम हटाने के लिए तैयार करने के लिए, jqXHR.done(), jqXHR.fail(), और jqXHR.always() का उपयोग करें।
$.get("urlToCheck.com").done(function() {
alert("success");
}).fail(function() {
alert("failed.");
});
- 1. यह पता लगाने के लिए कि जावास्क्रिप्ट का उपयोग कर एक स्ट्रिंग यूआरएल प्रारूप में है या नहीं?
- 2. यह पता लगाने के लिए कि जावा जावास्क्रिप्ट
- 3. यह पता लगाने का सबसे तेज़ तरीका है कि जावास्क्रिप्ट
- 4. यह पता लगाने के लिए कि विंडोज
- 5. जावास्क्रिप्ट यह पता लगाने के लिए कि क्या उपयोगकर्ता टैब
- 6. यह पता लगाने के लिए कि मेरी साइट फेसबुक आईफ़्रेम या स्टैंडअलोन साइट
- 7. का पता लगाने के लिए कि क्या छवि जावास्क्रिप्ट
- 8. यह पता लगाने के लिए कि कौन सा थ्रेड जावा में फ़ाइल लॉक कर रहा है?
- 9. यह पता लगाने के लिए कि मेमोरी लीक कहां है?
- 10. यह पता लगाने के लिए कि क्या जेएमएस कनेक्शन है?
- 11. यह पता लगाने के लिए कि UIScrollView स्क्रॉल कर रहा है या वह
- 12. यह पता लगाने के लिए कि मेरी साइट कहां है
- 13. क्या यह पता लगाने का कोई तरीका है कि जावास्क्रिप्ट किस तत्व को प्रभावित कर रहा है?
- 14. यह पता लगाने के लिए कि क्या NSScrollView वर्तमान में
- 15. यह पता लगाने के लिए कि क्या विंडोज सी #
- 16. यह पता लगाने के लिए कि कोई वेबसाइट HSTS
- 17. यह पता लगाने के लिए कि मेरे ऐप
- 18. यदि यूआरएल में यह है कि जावास्क्रिप्ट
- 19. यह पता लगाने के लिए कि कोई आईफ़्रेम किसी त्रुटि को ट्रिगर किए बिना सुलभ है या नहीं?
- 20. यह पता लगाने के लिए कि एक विंडो ने अपने "शोडियलॉग" कॉल का उपयोग किया है
- 21. यह पता लगाने के लिए कि मेरा एएसपी.NET कोड किस खाते में चल रहा है?
- 22. का पता लगाने कुंजी जावास्क्रिप्ट
- 23. यह पता लगाने के लिए कि HTML5 वीडियो इनलाइन
- 24. यह पता लगाने के लिए कि क्या स्पिइट को pygame
- 25. यह पता लगाने के लिए कि किस ड्रॉबल संसाधन का उपयोग किया जाता है?
- 26. यह पता लगाने के लिए कि विकास कपड़े में एज़ूर एप्लिकेशन चल रहा है?
- 27. यह पता लगाने के लिए कि खिड़की कोको
- 28. सेलेनियम सी # वेबड्राइवर यह पता लगाने के लिए कि तत्व दिखाई दे रहा है
- 29. यह पता लगाने के लिए कि कोई फ़ाइल बैच फ़ाइल
- 30. यह पता लगाने के लिए जावास्क्रिप्ट कि किसी चयनित तत्व का ड्रॉपडाउन
'लेकिन ध्यान दें कि यह केवल उसी उत्पत्ति पर ही काम करेगा। –
मैं क्रोम का उपयोग कर रहा हूं, क्या यह काम करेगा? – Mario
@ मारियो - हां, जब तक यह वही मूल मूल नीति के कारण समान उत्पत्ति में है। –