2016-03-29 6 views
5

कभी-कभी अधिभार के दौरान कुछ साइटें लोड होने में विफल होती हैं।साइट को पूरी तरह लोड होने में विफल होने पर नोटिस दिखा रहा है

मैं chrome.webRequest.onErrorOccurred api का उपयोग करके इस त्रुटि का पता लगा सकता हूं।

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

मैं साइट निकाय में नोटिस कैसे पेस्ट कर सकता हूं कि यह लोड करने में विफल रहा है?

शायद पृष्ठभूमि पृष्ठ से स्क्रिप्ट निष्पादन का उपयोग कर? क्या पृष्ठ में शरीर की सामग्री होगी?

+0

क्या आपने [chrome.webRequest.onErrorOccurred] (https://developer.chrome.com/extensions/webRequest#event-onErrorOccurred) पर एक नज़र डाली है? – dan

+0

@ dan75 नहीं, मैंने डिफ़ॉल्ट रूप से – user5858

+0

नहीं किया है, यह हर बार किसी भी अनुरोध (दस्तावेज़, स्टाइलशीट, छवि, आदि) पर एक त्रुटि होती है। हालांकि, यदि आप इसे [संसाधन प्रकार फ़िल्टर] (https://developer.chrome.com/extensions/webRequest#type-ResourceType) के साथ उपयोग करते हैं तो आप कुछ अनुरोध प्रकारों के लिए फ़िल्टर कर सकते हैं। – dan

उत्तर

0

आपके पास यहां कुछ विकल्प हैं। यदि आप chrome.webRequest.onErrorOccurred() का उपयोग कर रहे हैं, हालांकि मैं सुझाव दूंगा कि जब आप कोई त्रुटि उत्पन्न करते हैं, तो chrome.tabs.update() का उपयोग करते हुए आप टैब को किसी त्रुटि पृष्ठ पर रीडायरेक्ट करते हैं।

उदाहरण के लिए:

chrome.webRequest.onErrorOccurred.addListener(function(details) 
{  
    chrome.tabs.update(details.tabId, {url: "URL FOR AN ERROR PAGE"}); 
}, 
{types: ["main_frame"]}); 

यह टैब त्रुटि उत्पन्न रीडायरेक्ट करेगा जब main_frame त्रुटियों की एक resourceType के साथ एक वेब अनुरोध।

कुछ ऐसी चीजें हैं जिन पर आपको यहां विचार करने की आवश्यकता है। क्या आप केवल एक प्रकार के main_frame के साथ अनुरोधों से त्रुटियों को कैप्चर करना चाहते हैं? यदि नहीं, तो ईवेंट से 'प्रकार' फ़िल्टर को हटा दें।

दूसरी बात जो आपको विचार करने की आवश्यकता है वह यह है कि आप किस पृष्ठ पर रीडायरेक्ट कर रहे हैं। आप अपने एक्सटेंशन के भीतर एक HTML फ़ाइल पैकेज कर सकते हैं और फिर उस पर रीडायरेक्ट कर सकते हैं। अपने त्रुटि पृष्ठ का यूआरएल उत्पन्न करने के लिए आप chrome.extension.getURL('customerrorpage.html') चला सकते हैं।

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