InnerHTML, предупреждая его, предупреждает двойными кавычками в Firefox, но не в IE - PullRequest
1 голос
/ 28 апреля 2010

Я делаю innerHTML, чтобы получить данные и сохранить их в базе данных. Когда я попробовал в Firefox, он подходит с кавычками ("или") для атрибутов. Но в IE я не получаю кавычки ("или") для атрибутов. Это проблема браузера? Любой ответ на это.

Спасибо

Ответы [ 2 ]

2 голосов
/ 28 апреля 2010

Да, это проблема браузера, в том, как IE это делает. Обратите внимание, что кавычки не являются обязательными для всех атрибутов в HTML, поэтому вывод IE не является недействительным. Если вы хотите XHTML, вам придется создать его самостоятельно, пройдясь по DOM.

1 голос
/ 28 апреля 2010

Да. Когда вы используете innerHTML, браузер воссоздает HTML на основе элементов DOM и атрибутов в элементе. Разные браузеры делают это по-разному, потому что до недавнего времени не было никакого стандарта (innerHTML было новшеством Microsoft, которое было принято почти всеми остальными и стандартизировано в HTML5 ). Если ваша разметка выглядит так:

<span style="color: red" id="foo">...</span>

IE innerHTML для этого будет:

<SPAN id=foo style="COLOR: red">...</SPAN>

... тогда как Firefox и Chrome довольно близки к вашему оригиналу.

То, что дает вам IE, это действительный HTML (вы можете опускать кавычки в атрибутах, в которых нет пробелов, и с тэгами UPPER CASE тоже все в порядке), но не в допустимый XHTML (если это важно для того, что вы делаешь).

Вы можете создать свою собственную (X) строку HTML, если хотите, самостоятельно пройдясь по дереву DOM или обработав результат IE.

Хорошая новость заключается в том, что теперь, когда innerHTML является стандартизированным , и в стандарте четко сказано, что результатом должен быть действительный XML в документе XML (какими являются документы XHTML), и поскольку Microsoft является Более заинтересованный и преданный стандартам в этой области, чем они были в течение многих лет, вероятно, IE9 будет лучше в этом отношении.

...