तो, विचार यूआरएल "परीक्षण" करने के लिए अजाक्स-अनुरोध का उपयोग करना है। अजाक्स-अनुरोध आपको "सफलता" और "त्रुटि" हैंडलर को बांधने में सक्षम बनाता है - तत्वों के विपरीत जो केवल "लोड" हैंडलर प्रदान करते हैं।
बेशक, अजाक्स-अनुरोध उसी मूल नीति द्वारा प्रतिबंधित हैं (जब तक कि वेब-सर्वर सीओआरएस सक्षम नहीं करता), लेकिन आपने कहा कि पीडीएफ एक ही डोमेन पर है, इसलिए कोई समस्या नहीं होनी चाहिए।
इसके अलावा, आपने कहा है कि आप Mootools लाइब्रेरी का उपयोग करते हैं - मैं jQuery का उपयोग करता हूं, इसलिए मैं केवल आपको एक jQuery समाधान प्रदान कर सकता हूं, लेकिन चूंकि हम "सफलता" और "त्रुटि" हैंडलर के साथ एक साधारण अजाक्स-अनुरोध कर रहे हैं , आप आसानी से मेरे jQuery समाधान के आधार पर एक Mootools समाधान फिर से बनाने में सक्षम होना चाहिए।
तो, एक iframe और एक दिया गया URL:
var iframe = $('#iframe')[0]; // reference to IFRAME element
var url = 'files/document1.pdf';
अजाक्स अनुरोध:
$.get(url, function() {
iframe.onload = function() { alert('PDF opened!'); };
iframe.src = url;
}).error(function() { alert('PDF not found'); });
सफलता-प्रदर्शन:http://jsfiddle.net/CZWdL/1/show/
त्रुटि-प्रदर्शन:http://jsfiddle.net/CZWdL/2/show/
तो, अगर टी वह अजाक्स-अनुरोध एक "त्रुटि" घटना ट्रिगर करता है, हम तुरंत "नहीं मिला" संदेश को तुरंत सतर्क करते हैं। यदि, हालांकि, अजाक्स-अनुरोध एक "सफलता" घटना को ट्रिगर करता है, तो हम अपने IFRAME तत्व को "लोड" हैंडलर असाइन करते हैं (यह "लोड" हैंडलर अंततः "लोड" संदेश को सतर्क करेगा), और यूआरएल को src
संपत्ति पर सेट करेगा मैन्युअल रूप से।
स्रोत
2012-03-06 00:23:41
क्या आप आईफ़्रेम में पीडीएफ फाइल लोड कर रहे हैं? –
@ ŠimeVidas हां। मुझे यह पसंद है अगर पीडीएफ सर्वर से लोड नहीं किया जा सकता है एक संदेश बॉक्स "अलर्ट" आना चाहिए –
क्या वेब पेज के समान डोमेन पर पीडीएफ है? –