मेरे पास एक स्क्रिप्ट है जो मेरी वेबसाइट पर जावास्क्रिप्ट त्रुटियों का पता लगाती है और उन्हें रिपोर्टिंग के लिए मेरे बैकएंड पर भेजती है। यह पहली त्रुटि का सामना करना पड़ा, माना जाता है कि लाइन नंबर, और समय।
सिद्धांत को शामिल करने के लिए संपादित करें:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
...
<script type="text/javascript">
//<![CDATA[
// for debugging javascript!
(function(window){
window.onerror = function(msg, url, ln) {
//transform errors
if (typeof(msg) === 'object' && msg.srcElement && msg.target) {
if(msg.srcElement == '[object HTMLScriptElement]' && msg.target == '[object HTMLScriptElement]'){
msg = 'Error loading script';
}else{
msg = 'Event Error - target:' + msg.target + ' srcElement:' + msg.srcElement;
}
}
msg = msg.toString();
//ignore errors
if(msg.indexOf("Location.toString") > -1){
return;
}
if(msg.indexOf("Error loading script") > -1){
return;
}
//report errors
window.onerror = function(){};
(new Image()).src = "/jserror.php?msg=" + encodeURIComponent(msg) + "&url=" + encodeURIComponent(url || document.location.toString().replace(/#.*$/, "")) + "&ln=" + parseInt(ln || 0) + "&r=" + (+new Date());
};
})(window);
//]]>
</script>
इस स्क्रिप्ट की वजह से, मैं अपनी साइट पर होने वाली किसी भी जावास्क्रिप्ट त्रुटियों के बारे में गहराई से जानता हूं। सबसे बड़े अपराधियों में से एक "स्क्रिप्ट त्रुटि है।" क्रोम 10+ और फ़ायरफ़ॉक्स 3+ में लाइन 0. पर । यह त्रुटि मौजूद नहीं है (या इंटरनेट एक्सप्लोरर में कुछ और कहा जा सकता है?)।
सुधार (5/23/2013): यह "स्क्रिप्ट त्रुटि, लाइन 0" त्रुटि अब IE7 और संभवतः IE के अन्य संस्करणों में दिखाई दे रही है। संभवतः हाल ही में IE सुरक्षा पैच का एक परिणाम के रूप में यह व्यवहार पहले से मौजूद नहीं था।
क्या किसी को कोई अंदाजा नहीं है कि इस त्रुटि का क्या मतलब है या क्या कारण हैं यह मेरे समग्र पगेलोड के लगभग 0.25% पर होता है, और रिपोर्ट की गई आधी त्रुटियों का प्रतिनिधित्व करता है।
application/xhtml+xml
इसे XHTML पार्सर में चलाने के लिए सामग्री भेजनी होगी (जैसे XHTML विनिर्देश कहता है)। ऐसी बहुत सारी सामग्री है जो XHTML होने का दावा करती है, लेकिन सामान्य HTML सिद्धांत भेजती है। गलत तरीके से सामग्री बनाने वाले XHTML का उपयोग करने के कारण, ब्राउज़रों ने केवल XML पार्सर का उपयोग करने का निर्णय लिया application/xhtml+xml
(यह वास्तव में सख्त पार्सर है)। Hixie.ch/advocacy/xhtml और webdevout.net/articles/beware-of-xhtml कहते हैं क्यों एक्सएचटीएमएल साथ HTML पार्सर का उपयोग नहीं।