दिलचस्प पोस्ट
बाश में एक फ़ाइल की सामग्री के माध्यम से लूपिंग वेबपृष्ठ की सभी छवियों को एम्बेड करने के लिए फांटोमजेएस का इस्तेमाल करना चेतावनियां पैदा करता है, लेकिन काम करता है 4.3 "Xcode 4.3 में" कोई मान्य 'एपीएस-पर्यावरण' एंटाइटेलमेंट स्ट्रिंग को एप्लिकेशन के लिए कैसे तय किया जाए? उच्च पास और लो-पास फ़िल्टर क्या हैं? बाइनरी स्ट्रिंग को पूर्णांक में कनवर्ट करें केवल अल्फ़ान्यूमेरिक को अनुमति देने के लिए जावास्क्रिप्ट के लिए RegEx लाइब्रेरी फ़ाइलों और मॉड्यूल के बीच क्या अंतर है? सिस्टम अनुमतियों के साथ एंड्रॉइड एप्लिकेशन को संकलित कैसे करें एंड्रॉइड ऐप पर एसएमएस प्राप्त करना क्या कोई मुझे IEnumerable और IEnumerator को समझा सकता है? निश्चित आकार के हैशमैप के लिए इष्टतम क्षमता और लोड फैक्टर क्या है? टेक्स्टफ़ाइल में एक स्ट्रीमरीडर के स्थान (सिननंबर) को कैसे जानूं? एंड्रॉइड शेयर वाइए संवाद जावा के लिए जावास्क्रिप्ट पार्सर मल्टीपार्ट / फ़ॉर्म-डेटा के साथ एएसपी.नेट एमवीसीए अजाक्स फॉर्म पोस्ट कैसे करें?

वास्तव में "HIERARCHY_REQUEST_ERR: DOM अपवाद 3" का कारण-त्रुटि हो सकता है?

कैसे यह jQuery से संबंधित है? मुझे पता है कि लाइब्रेरी आंतरिक जावास्क्रिप्ट फ़ंक्शंस आंतरिक रूप से उपयोग करती है, लेकिन जब भी ऐसी समस्या होती है, तब क्या करने की कोशिश कर रही है?

Solutions Collecting From Web of "वास्तव में "HIERARCHY_REQUEST_ERR: DOM अपवाद 3" का कारण-त्रुटि हो सकता है?"

इसका मतलब है कि आपने DOM नोड को DOM पेड़ में एक जगह में डालने का प्रयास किया है जहां वह नहीं जा सकता। सबसे आम जगह मैं इसे देख रहा हूं सफारी पर जो निम्नलिखित की अनुमति नहीं देता है:

document.appendChild(document.createElement('div')); 

आम तौर पर, यह सिर्फ एक गलती है, जहां वास्तव में इसका उद्देश्य था:

 document.body.appendChild(document.createElement('div')); 

अन्य कारण जंगली (टिप्पणियों से संक्षेप) में देखा गया है:

  • आप नोड को अपने आप में जोड़ने का प्रयास कर रहे हैं
  • आप एक नोड में अशक्त जोड़ने की कोशिश कर रहे हैं
  • आप एक पाठ नोड में एक नोड जोड़ने की कोशिश कर रहे हैं।
  • आपका एचटीएमएल अमान्य है (जैसे आपका लक्ष्य नोड बंद करने में विफल)
  • ब्राउज़र सोचता है कि आप जो ऐप्पल करने की कोशिश कर रहे हैं, वह एक्सएमएल (एक्सएचआर के माध्यम से फ़ेस करते समय आपके <!doctype html> लिए <!doctype html> जोड़कर, या सामग्री प्रकार को निर्दिष्ट करके तय करता है)

अगर आपको एक jquery AJAX कॉल $ .एजेक्स के कारण यह त्रुटि मिल रही है

उसके बाद आपको यह निर्दिष्ट करने की आवश्यकता हो सकती है कि डेटाटाइप सर्वर से वापस क्या आ रहा है। मैंने इस सरल संपत्ति का उपयोग करते हुए बहुत कुछ तय किया है।

 $.ajax({ url: "URL_HERE", dataType: "html", success: function(response) { $('#ELEMENT').html(response); } }); 

यह त्रुटि तब हो सकती है जब आप DOM में एक नोड सम्मिलित करने का प्रयास करते हैं जो कि अमान्य HTML है, जो कि कुछ गलत विशेषता के रूप में कुछ भी हो सकता है, उदाहरण के लिए:

 // <input> can have a 'type' attribute var $input = $('<input/>').attr('type', 'text'); $holder.append($input); // OK // <div> CANNOT have a 'type' attribute var $div = $('<div></div>').attr('type', 'text'); $holder.append($div); // Error: HIERARCHY_REQUEST_ERR: DOM Exception 3 

विशेष रूप से jQuery के साथ आप इस समस्या में चला सकते हैं यदि तत्वों का निर्माण करते समय HTML टैग के आसपास के कैरेट को भूल जाते हैं:

  $("#target").append($("div").text("Test")); 

इस त्रुटि को बढ़ाएगा क्योंकि आपको क्या मतलब था

  $("#target").append($("<div>").text("Test")); 

@ केली नॉर्टन अपने जवाब में सही है कि The browser thinks the HTML you are attempting to append is XML और specifying the content type when fetching via XHR सुझाव देता है

यह सच है हालांकि आप कभी-कभी तीसरे पक्ष के पुस्तकालयों का उपयोग करते हैं जिन्हें आप संशोधित नहीं करने जा रहे हैं। यह मेरे मामले में JQuery UI है फिर आपको जावास्क्रिप्ट साइड पर प्रतिक्रिया प्रकार को ओवरराइड करने के बजाय प्रतिक्रिया में सही Content-Type प्रदान करना चाहिए। अपने Content-Type को text/html सेट करें और आप ठीक हैं

मेरे मामले में, file.xhtml को file.html नाम के रूप में बदलना आसान था – application server को बॉक्स से बाहर MIME प्रकार के मैपिंग के लिए कुछ एक्सटेंशन था। जब सामग्री गतिशील होती है, तो आप किसी तरह प्रतिक्रिया की सामग्री प्रकार सेट कर सकते हैं (उदाहरण के लिए res.setContentType("text/html") एपीआई में res.setContentType("text/html") )।

आप इन सवालों को देख सकते हैं

HIERARCHY_REQUEST_ERR हो रही है जब जावास्क्रिप्ट का उपयोग करने के लिए एक नीडिंत सूची उत्पन्न करने के लिए

या

ASP.NET बटन पोस्टबैक के साथ jQuery UI संवाद

निष्कर्ष है

जब आप फ़ंक्शन एपेंड का उपयोग करने का प्रयास करते हैं, तो आपको इस उदाहरण की तरह नए वैरिएबल का उपयोग करना चाहिए

 jQuery(function() { var dlg = jQuery("#dialog").dialog({ draggable: true, resizable: true, show: 'Transfer', hide: 'Transfer', width: 320, autoOpen: false, minHeight: 10, minwidth: 10 }); dlg.parent().appendTo(jQuery("form:first")); }); 

उपरोक्त उदाहरण में, फ़ंक्शन एपेंड को चलाने के लिए var "dlg" का उपयोग करता है फिर त्रुटि "HIERARCHY_REQUEST_ERR" फिर से बाहर नहीं आएगी।

Google Chrome विस्तार Sidewiki का उपयोग करते समय मुझे इस त्रुटि का सामना करना पड़ा। इसे अक्षम करने ने मेरे लिए इस मुद्दे को हल किया

मैं एक और विशिष्ट उत्तर यहां जोड़ूंगा क्योंकि यह उत्तर के लिए 2 घंटे की खोज थी …

मैं किसी दस्तावेज़ को एक टैग में शामिल करने की कोशिश कर रहा था। Html इस तरह से था:

 <map id='imageMap' name='imageMap'> <area shape='circle' coords='55,28,5' href='#' title='1687.01 - 0 percentile' /> </map> 

यदि आप ध्यान दें, टैग पिछला उदाहरण ( <area/> ) में बंद है। यह क्रोम ब्राउज़र में स्वीकार नहीं किया गया था। लगता है कि w3 स्कूलों को बंद होना चाहिए, और मुझे इस टैग पर आधिकारिक स्पेक नहीं मिल सका, लेकिन यह निश्चित रूप से क्रोम में काम नहीं करता है। फ़ायरफ़ॉक्स इसे <area/> या <area></area> या <area> साथ स्वीकार नहीं करेगा। क्रोम में <area> होना चाहिए IE कुछ भी स्वीकार करता है

वैसे भी, यह त्रुटि इसलिए हो सकती है क्योंकि आपका HTML सही नहीं है।

यदि आप इंटरनेट एक्सप्लोरर में किसी अन्य विंडो में एक नोड संलग्न करने की कोशिश करते समय इस समस्या में आते हैं, तो नोड के बजाय HTML नोड के उपयोग के लिए कोशिश करें।

 myElement.appendChild(myNode.html()); 

IE दूसरे विंडो में नोड्स को जोड़ने का समर्थन नहीं करता है।

यह त्रुटि IE9 में मेरे साथ हुई जब मैंने एक गतिशील रूप से बाल को जोड़ने की कोशिश की जो पहले से ही एक खिड़की में मौजूद थी। खिड़की ए ने एक बालक खिड़की बनाई थी B. खिड़की B में कुछ उपयोगकर्ता की कार्रवाई के बाद एक फ़ंक्शन चलने और एपेंड चाइल्ड को विंडो में प्रपत्र तत्व window.opener.document.getElementById('formElement').appendChild(input);

यह एक त्रुटि फेंकता होगा document.createElement('input'); का उपयोग करके इनपुट तत्व बनाने के साथ ही document.createElement('input'); बाल खिड़की में, इसे एक पैरामीटर के रूप में खिड़की के पास ले जाना। window.opener विंडो ए, और वहाँ संलग्नक है तभी जब मैंने एक ही विंडो में इनपुट तत्व बनाया है, जहां मैं इसे जोड़ना चाहता था, तो यह बिना त्रुटियों के सफल होगा।

इस प्रकार मेरा निष्कर्ष (कृपया सत्यापित करें): एक विंडो में एक तत्व गतिशील रूप से बनाया जा सकता है ( document.createElement .appendChild का उपयोग .appendChild ), और फिर एक अन्य विंडो में एक तत्व में ( .appendChild का उपयोग .appendChild ) संलग्न किया जा सकता है (बिना किसी विशेष अतिरिक्त चरण को ले जाने के लिए) इसे एक्सएमएल या कुछ नहीं माना जाता है)। यह IE9 में विफल रहता है और त्रुटि फेंकता है, एफएफ में यह ठीक काम करता है हालांकि।

पुनश्च। मैं jQuery का उपयोग नहीं करते

मुझे पता है कि यह धागा पुराना है, लेकिन मुझे समस्या का एक और कारण है जिसे दूसरों को सहायक मिल सकता है। मुझे Google एनालिटिक्स के साथ त्रुटि मिल रही है, जो कि उसे HTML टिप्पणी में जोड़ने की कोशिश कर रहा है अपमानजनक कोड:

 document.documentElement.firstChild.appendChild(ga); 

यह त्रुटि पैदा कर रहा था क्योंकि मेरा पहला तत्व एक HTML टिप्पणी था (अर्थात् एक Dreamweaver टेम्पलेट कोड)।

 <!-- #BeginTemplate "/Templates/default.dwt.php" --> 

मैंने कुछ अपमानजनक कोड को संशोधित किया, जिसे बुलेटप्रूफ नहीं, बल्कि बेहतर:

 document.documentElement.firstChild.nodeType===1 ? document.documentElement.firstChild.appendChild(ga) : document.documentElement.lastChild.appendChild(ga); 

एक और कारण यह आ सकता है कि तत्व तैयार होने से पहले आप जोड़ रहे हैं

 <body> <script> document.body.appendChild(foo); </script> </body> </html> 

इस मामले में, आपको स्क्रिप्ट को बाद में स्थानांतरित करने की आवश्यकता होगी। पूरी तरह से सुनिश्चित नहीं है कि यह कोषेर है, लेकिन शरीर के बाद स्क्रिप्ट चलाना मदद नहीं करता है: /

स्क्रिप्ट को स्थानांतरित करने के बजाय, आप किसी ईवेंट हैंडलर में भी शामिल कर सकते हैं।

मुझे यह त्रुटि मिली क्योंकि मैं अपने तत्व को क्लोन करना भूल गया था

 // creates an error clone = $("#thing"); clone.appendTo("#somediv"); // does not clone = $("#thing").clone(); clone.appendTo("#somediv"); 

बस संदर्भ के लिए

IE विंडो संदर्भ से एक अलग विंडो संदर्भ में बनाया गया कोई भी तत्व जोड़कर अवरुद्ध करेगा जिसमें तत्व सम्मिलित हो रहा है

जैसे

 var childWindow = window.open('somepage.html'); //will throw the exception in IE childWindow.document.body.appendChild(document.createElement('div')); //will not throw exception in IE childWindow.document.body.appendChild(childWindow.document.createElement('div')); 

मैंने नहीं सोचा है कि कैसे एक अलग विंडो संदर्भ का उपयोग कर jQuery के साथ एक डॉट तत्व अभी तक बनाने के लिए।

मुझे IE9 में यह त्रुटि मिलती है अगर मैंने स्क्रिप्ट डीबगिंग (इंटरनेट एक्सप्लोरर) विकल्प अक्षम कर दिया होता अगर मैं स्क्रिप्ट डीबगिंग को सक्षम करता हूं तो मुझे त्रुटि दिखाई नहीं देता है और पेज ठीक काम करता है। यह अजीब लगता है कि डीओएम अपवाद को या तो सक्षम या अक्षम डिबगिंग के साथ क्या करना है।