Internet Explorer innerHTML выводит атрибуты без кавычек - PullRequest
4 голосов
/ 28 октября 2011

Я использую 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());

вывод

<IMG id=my21img style="width:100%;height:100%" src="a/img.jpg" />

Мне нужны двойные кавычки с идентификатором cauze. Затем я записываю этот html в файл, а затем некоторые другие приложения читают егои его вызывающие проблемы из-за недостающих цитат.

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

HTML не требует, чтобы атрибуты были заключены в кавычки, IE 8 и ниже возвращают атрибуты без кавычек, если в них нет пробелов. Другие приложения, анализирующие этот HTML, явно не являются HTML-анализаторами, и, если они предназначены, неисправность должна быть устранена с их помощью.

'В некоторых случаях авторы могут указывать значение атрибута без кавычек. Значение атрибута может содержать только буквы (a-z и A-Z), цифры (0-9), дефисы (десятичный ASCII 45), точки (десятичный ASCII 46), подчеркивания (десятичный ASCII 95) и двоеточия (десятичный ASCII 58). Мы рекомендуем использовать кавычки, даже если их можно устранить. '

Обратите внимание, что в выводе у вас есть закрывающая косая черта / в конце тега <IMG. Internet Explorer также не помещает их (я не думаю, что любой браузер делает). Это идиома XML и также не требуется для HTML.

0 голосов
/ 28 октября 2011

Если $ == JQuery:

var imgId="my" + val_imgarea + "img";
$i = $('<img src="" style="width:100%;height:100%" id="'+imgId+'" />');
$i.click(function(){alert(this.id);});
$(parent).append($i);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...