Web sitemde Javascript hatalarını tespit eden ve bunları raporlama için arka ucuma gönderen bir komut dosyası var. Karşılaşılan ilk hatayı, varsayılan satır numarasını ve saati bildirir.
Dokümanı dahil etmek için DÜZENLE:
<!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>
Bu komut dosyası nedeniyle, sitemde meydana gelen javascript hatalarının farkındayım. En büyük suçlulardan biri "Script Hatası" dır. Chrome 10+ ve Firefox 3+ sürümlerinde 0 satırında . Internet Explorer'da bu hata yok (veya başka bir şey olarak adlandırılabilir mi?).
Düzeltme (23.05.2013): Bu "Komut Dosyası Hatası, Satır 0" hatası şimdi IE7'de ve muhtemelen IE'nin diğer sürümlerinde gösteriliyor. Muhtemelen, bu davranış daha önce mevcut olmadığından son zamanlarda yapılan IE güvenlik düzeltme ekinin bir sonucudur.
Bu hatanın ne anlama geldiği veya neye sebep olduğu hakkında bir fikri olan var mı? Genel sayfa yüklerimin yaklaşık% 0.25'inde olur ve bildirilen hataların yarısını temsil eder.
application/xhtml+xml
XHTML ayrıştırıcısında çalışacak şekilde göndermeniz gerekir (XHTML belirtiminde belirtildiği gibi). XHTML olduğunu iddia eden, ancak normal HTML doküman türünü gönderen çok fazla içerik var. İçerik oluşturucuların XHTML'yi ne kadar yanlış kullandığından, tarayıcılar yalnızca XML ayrıştırıcısını kullanmaya karar verdi application/xhtml+xml
(gerçekten katı ayrıştırıcı). Hixie.ch/advocacy/xhtml ve webdevout.net/articles/beware-of-xhtml XHTML HTML ayrıştırıcı kullanmayın neden söylüyor.