Internet Explorer innerHTML тырнақшасыз атрибуттарды шығарады

IE 8 пайдаланып, элементтердің Id төлсипатын орнатуға тырысамын. Содан кейін бұл элементті басты элементке қосып, оның innerHTML-ін тексеремін. Мен көретін мәселе - id төлсипатында қос тырнақшалар болмауы. Алдымен, бұл мен үшін setAttribute сипатын пайдаланып жатқанын және IE 8-де қате болуы мүмкін деп ойладым, сондықтан jQuery-ті атрибут мәндерін орнату үшін қолдандым, бірақ мәселе әлі де болды. Менің кодым ...

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

шығыс


Менде квадратпен қос тырнақшалар қажет, содан кейін осы html файлына жазамын, содан кейін кейбір басқа қосымшалар оны оқып, және оның жетіспеген дәйексөздерінің себебін тудырады.

4

2 жауаптар

HTML төлсипаттарды тырнақшалармен оралуды талап етпейді, IE 8 және төменде олар ақ кеңістік болмаса, баға белгілерінсіз атрибуттарды қайтарады. Бұл HTML-ні талдайтын басқа қосымшалар HTML-парсерлерді анық емес және егер олар ойластырылған болса, олармен қателесу керек.

'In certain cases, authors may specify the value of an attribute without any quotation marks. The attribute value may only contain letters (a-z and A-Z), digits (0-9), hyphens (ASCII decimal 45), periods (ASCII decimal 46), underscores (ASCII decimal 95), and colons (ASCII decimal 58). We recommend using quotation marks even when it is possible to eliminate them.'

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
қосылды
«IE 8 және одан кейінгі нұсқаларында оларда ақ кеңістік болмаса, баға белгілері бар атрибуттар қайтарылады.» - Менің ойымша, керісінше. jsfiddle.net/ymkGZ/1
қосылды автор pimvdb, көзі
@pimvdb: иә ... иә мен жасадым. Бүгінде ми ешқандай жұмыс істемейді.
қосылды автор Andy E, көзі

Егер $ == JQuery:

var imgId="my" + val_imgarea + "img";
$i = $('');
$i.click(function(){alert(this.id);});
$(parent).append($i);
0
қосылды
Энди дұрыс әріптес ... IE-дегі атрибуттары бар қос тырнақшалар болмайды. Мен урологиялық шешімдерді қолданамын және жұмыс істемеймін. Кешіріңіз !!
қосылды автор samach, көзі
IE9-де жақсы жұмыс істейді
қосылды автор Jacek Wysocki, көзі