Internet Explorer innerHTML tirnoqsiz atributlarni chiqaradi

IE 8 dan foydalanib va ​​elementlarning identifikatorini o'rnatishga harakat qilaman. Keyin men ushbu elementni yuqori elementga qo'shaman va ichki HTMLni tekshirib chiqaman. Ko'rib turganimdek, id identifikatorida ikkita tirnoq mavjud emas. Avvaliga bu setAttribute xususiyatidan foydalanganligi sababli bo'lishi mumkin deb o'ylayman va IE 8da buggy bo'lishi mumkin, shuning uchun attribut qiymatlarini o'rnatish uchun jQuery ishlatilgan, ammo muammo hali ham mavjud edi. Mening kodim ...

            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());

chiqdi


Keyinchalik bu html-ni faylga yozib qo'yaman, so'ngra ba'zi boshqa ilovalar uni o'qib chiqadi va yo'qolgan kotirovkalarning sabablarini keltirib chiqaradi.

4

2 javoblar

HTML HTML belgilariga sarlavhaga kerakli atributlarni talab qilmaydi, IE 8 va atributlari ular bo'sh joy mavjud bo'lmagunicha, takliflarsiz kam qiymatlarni qaytaradi. Ushbu HTMLni tahlil qiladigan boshqa ilovalar aniq HTML-parserlar emas va agar ular maqsadga muvofiq bo'lsa, ular bilan tuzatish kerak.

'Ba'zi hollarda, mualliflar hech qanday tirnoq belgilari bo'lmasdan biror xususiyatning qiymatini belgilashi mumkin. Xususiyat qiymati faqatgina harflar (a-z va A-Z), raqamlar (0-9), tirelar (ASCII kasrli 45), davrlar (ASCII kasrli 46), pastki belgilar (ASCII decimal 95) va ikkilik (ASCII induktsiya 58) bo'lishi mumkin. Biz ularni yo'q qilsak ham tirnoq belgilari foydalanishni tavsiya qilamiz.

     

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
qo'shib qo'ydi
"IE 8 va undan past bo'lgan belgilar, bo'sh joy mavjud bo'lmagunicha, takliflar bilan qaytaradi." - Menimcha, buning aksi. jsfiddle.net/ymkGZ/1
qo'shib qo'ydi muallif pimvdb, manba
@pimvdb: ha ... ha men qildim. Bugungi kunda miyaning ishi yo'q.
qo'shib qo'ydi muallif Andy E, manba

Agar $ == JQuery:

var imgId="my" + val_imgarea + "img";
$i = $('');
$i.click(function(){alert(this.id);});
$(parent).append($i);
0
qo'shib qo'ydi
Andy to'g'ri turmush o'rtog'i ... Bizda IE identifikatorlari bilan ikkita tirnoqga ega bo'lmaydi. Men ur echimlarini sinab ko'rdim va ishlamayapti. kechirasiz !!
qo'shib qo'ydi muallif samach, manba
IE9-da ishlaydi
qo'shib qo'ydi muallif Jacek Wysocki, manba
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb