Internet Explorer innerHTML, tırnak işaretleri içermiyor

IE 8 kullanıyorum ve bir öğe kimliği özniteliği ayarlamaya çalışıyorum. Daha sonra bu öğeyi bir ana öğeye eklerim ve bunun innerHTML olduğunu kontrol ederim. Gördüğüm sorun, id özniteliğinin çift tırnak işareti eksik olmasıdır. İlk başta setAttribute özelliğini kullandığım ve IE 8'de buggy olabileceğimi düşündüm, bu yüzden öznitelik değerlerini ayarlamak için jQuery'yi kullandım ama problem hala oradaydı. Heres benim kodum ...

            var imgId="my" + val_imgarea + "img";
            var img=document.createElement('img');
            $(img).attr("Id",imgId);
            img.setAttribute('src',name);
            img.setAttribute('style',"width:100%;height:100%");
            $(img).click(function(){clic(imgId);});

            var input=document.createElement('input');
            input.setAttribute('type','text');
            input.setAttribute('id',name);
            input.setAttribute('style',"display:none");

            var parent=document.getElementById(newArea);
            parent.appendChild(img);
            parent.appendChild(input);

            alert($("#"+newArea).html());

çıktı


Ben id cauze ile çift tırnak gerekir sonra bir dosyaya bu html yazmak ve daha sonra bazı diğer uygulamalar okumak ve eksik tırnakların neden sorunlu cauze neden.

4

2 cevap

HTML, içinde beyaz boşluk olmadıkça tırnak işaretleri olmadan, IE 8 ve alt döndürme özniteliklerinin tırnak işaretleri olmadan sarılmasını gerektirmez. Bu HTML'yi ayrıştırmakta olan diğer uygulamalar açıkça HTML ayrıştırıcıları değildir ve eğer olması isteniyorsa, hataların onlarla sabitlenmesi gerekir.

'Bazı durumlarda, yazarlar bir özniteliğin değerini tırnak işaretleri olmadan belirtebilir. Özellik değeri yalnızca (a-z ve A-Z), rakam (0-9), tireler (ASCII ondalıkı 45), nokta (ASCII ondalıkı 46), alt çizgi (ASCII ondalık 95) ve kolonları (ASCII ondalık 58) içerebilir. Bunları elemek mümkün olduğunda bile tırnak işaretleri kullanmanızı öneririz. '

     

Note that, in your output, you have a closing slash / at the end of the tag. Internet Explorer doesn't put those in either (I don't think any browser does). This is an xml idiom and also not required for HTML.

4
katma
"IE 8 ve daha düşük değerler, içinde beyaz boşluk olmadıkça tırnak işaretleriyle döner." - Bence tersini kastediyorsun. jsfiddle.net/ymkGZ/1
katma yazar pimvdb, kaynak
@pimvdb: evet ... evet yaptım. Beyin bugün işe yaramadı.
katma yazar Andy E, kaynak

Eğer $ == jQuery ise:

var imgId="my" + val_imgarea + "img";
$i = $('');
$i.click(function(){alert(this.id);});
$(parent).append($i);
0
katma
Andy haklı dostum ... IE'de id öznitelikleriyle çift tırnak bile edemeyiz. Çözümleri denedim ve işe yaramıyor. afedersiniz!!
katma yazar samach, kaynak
IE9'da tamam çalışıyor
katma yazar Jacek Wysocki, kaynak