#javascript #internet-explorer #innerhtml
#javascript #internet-explorer #innerhtml
Вопрос:
У меня проблема с IE и innerHTML. Пожалуйста, ознакомьтесь со следующим кодом.
var h = document.getElementsByTagName("mytag");
h.item(0).tagName;
var d = document.body.innerHTML;
h.item(0).innerHTML = "<div id='' style='height:auto'><textarea id=''></textarea><br/><button id=''>Post</button></div>";
Пожалуйста, обратите внимание, что я меняю идентификаторы.
Приведенный выше код хорошо работает в Firefox, но не в IE.
h.item(0).innerHTML = "<div id='' style='height:auto'><textarea id=''></textarea><br/><button id=''>Post</button></div>";
Эта строка вызывает у меня проблемы. mytag
является пользовательским.
Я застрял здесь, пожалуйста, помогите.
Спасибо.
Комментарии:
1. IE не будет поддерживать пользовательские теги как элементы DOM, так что вам не повезло. Вам придется использовать допустимые HTML-теги, такие как
<div>
или<span>
(или любой другой тег) вместоmytag
.2. Спасибо, но есть ли какой-либо способ сделать это?
3. Возможно, применив правильное
namespace
, как описано здесь , но я не уверен, что это тоже сработает.4. Как я могу заставить других владельцев веб-сайтов использовать правильное пространство имен? код не для моего сайта, он работает как API.
5. Нет, вы не можете заставить их делать такие вещи.
Ответ №1:
mytag
IE не распознает их, вам нужно будет создать их, чтобы IE знал, используя:
document.createElement('mytag');
Или, в качестве альтернативы, используйте такие теги, как <div>
, и т. Д
Комментарии:
1.
var h = document.getElementsByTagName("mytag"); h= h.item(0).tagName;alert(h);
— это работает хорошо, но я не могу установить его innerHTML.
Ответ №2:
используйте document.all.elementId.getElementsByTagName(param1)
Комментарии:
1. Это неправда. Это
getElementById
очень просто, единственная проблема со старой версией IE (7 и менее) заключается в том, что он также будет искать элемент с таким именем , но он также вернет элемент с этим идентификатором просто отлично. Смотрите более подробную информацию здесь2. Хорошо, я неправильно ограничил его, спасибо за ваш полезный совет.