2012-09-19 15 views
7

मेरी सामग्री स्क्रिप्ट background.js को एक संदेश भेजती है। प्रतिक्रिया के लिए कॉलबैक हैंडलर में, मेरी पिछली पंक्ति "alert(alrt_msg)" थी। पर कोड को क्रियान्वित करने, मैं चेतावनी बॉक्स मिलता है, लेकिन क्लिक करने के बाद "ठीक है", क्रोम कंसोल से पता चलता है लाल रंग में निम्नलिखित:क्रोम एक्सटेंशन कंसोल में त्रुटि फेंकने

Error in event handler for 'undefined': Cannot call method 'disconnect' of null TypeError: Cannot call method 'disconnect' of null 
    at chromeHidden.Port.sendMessageImpl (miscellaneous_bindings:285:14) 
    at chrome.Event.dispatch (event_bindings:237:41) 
    at Object.chromeHidden.Port.dispatchOnMessage (miscellaneous_bindings:250:22) 

इसकी ज्यादा जानकारी नहीं है, लेकिन सहज मैं जानता था कि इस त्रुटि है क्योंकि कुछ संरचना कहीं कचरा है एकत्रित करते समय उपयोगकर्ता "ठीक" पर क्लिक करता है। इसलिए मैं यह है कि यह उपरोक्त त्रुटि के बिना काम किए गए

window.setTimeout(function() { alert(alrt_msg); } , 1);

के रूप में मेरे कोड डाल दिया। फिर भी, प्रलेखन या Google की खोज करने के बाद, मैं इसके पीछे सटीक कारण नहीं ढूंढ पाया। क्या कोई कृपया बता सकता है कि क्या हो रहा है और यदि दस्तावेज़ में ऐसा करने का एक विशिष्ट तरीका है?

+0

आपका कोड क्या है? क्या होगा यदि आप अपने 'ऑन मैसेज' ईवेंट श्रोता के अंत में 'सत्य वापस लौटें;' –

+3

मेरा मानना ​​है कि कारण यह है कि संदेश की प्रतिक्रिया के लिए हैंडलर अलर्ट पर क्लिक करने की प्रतीक्षा नहीं करता है; इसलिए जब आप स्क्रिप्ट को जारी रखने की अनुमति देने के लिए अलर्ट बंद करते हैं, तो हैंडलर अब और नहीं है। मुझे यकीन नहीं है कि यह एक बग माना जा सकता है। – Goodwine

+0

@ गुडविन, मेरा मानना ​​है कि आप सही हैं। – Methos

उत्तर

2

मैं एक ही मुद्दे पर आया हूं। यह एक प्रतिक्रिया में एक त्रुटि (मेरे कोड की गलती) के कारण है जिसे प्रतिक्रिया हैंडलर में बुलाया जाता है।

function updateObjDatabase(obj) { 
    chrome.runtime.sendMessage({data: obj}, function(response) { 
    // Update when it's done 
    update_msg_handler(response.data); 
    }); 
} 

function update_msg_handler(msg) { 
    ..... error code here 
} 

गलत कोड समारोह update_msg_handler में वास्तव में है: - सुन पक्ष

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) { 
    var update_msg = 'test'; 
    sendResponse({data: update_msg}); 
    return false; // -> Add this or not add this do not matter 
    }); 
} 

भेजने तरफ

background.js में:

यहाँ मेरी कोड है। लेकिन क्रोम कंसोल सिर्फ आपको ब्योरा नहीं बताएगा। यदि आपके पास आईडीई नहीं है तो आपको डीबग करने के लिए कुछ console.log जोड़ना होगा।

+0

मुझे एक ही समस्या कम या कम थी। तो हाँ, त्रुटियों के लिए अपना कोड देखें –

+11

आपने वास्तव में यहां कुछ भी नहीं बताया है। आपके कोड में क्या इस त्रुटि को फेंक दिया जाता है? –

1

मुझे एक ही त्रुटि थी। यह iMacros ऐप था। इसे हटाए जाने के बाद कोई त्रुटि नहीं हुई।

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