Хорошо, я сделал дерьмовую работу по описанию проблемы в своем предыдущем посте. Я думаю, что дискуссия отвлеклась от основной проблемы - так что я собираюсь попробовать еще раз. Mea Culpa до Elzo Valugi об указанной теме.Firefox не работает jQuery для вывода XHTML
У меня есть файл XML:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="wtf.xsl"?>
<Paragraphs>
<Paragraph>Hi</Paragraph>
</Paragraphs>
достаточно просто. У меня также есть таблица стилей для создания XHTML вывода:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
indent="yes"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
omit-xml-declaration="yes"/>
<xsl:template match="/*">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>FF-JS-XHTML WTF</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="wtf.js"></script>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="Paragraph">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
</xsl:stylesheet>
Последнее, но не менее, у меня есть следующие JQuery in toto (wtf.js, из тега сценария в таблицу стилей):
$(function() {
alert('Hiya!');
$('<p>Hello</p>').appendTo('body');
});
Чрезвычайно просто, но достаточно для демонстрации. Когда я запускаю это в Internet Explorer, я получаю предупреждение «Hiya!» а также ожидаемый:
Hi
Hello
, но когда я запускаю его в Firefox (3.0.1), я все еще получаю предупреждение, но JQuery не вставляет пункт в DOM, и я просто получаю это:
Hi
Если изменить таблицу стилей метод = «HTML» он отлично работает, и я получаю (наряду с предупреждением):
Hi
Hello
Почему Firefox не запустить J Запрос с документом XHTML? У кого-нибудь есть опыт работы с этой проблемой?
EDIT: ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Я могу успешно вставить элементы в документы таким образом, в Firefox (метод = «XML»):
var frag = document.createDocumentFragment();
var p = document.createElement('p');
p.appendChild(document.createTextNode('Ipsum Lorem'));
frag.appendChild(p);
$('body').append(frag);
, но я бегу в аналогичной задаче с .remove() способ.
Все больше и больше выглядит, что Firefox не создает DOM из XML, к которому jQuery может относиться, или что-то подобное.
@Alohci: Huzzah! Прогресс! Теперь ... какое заявление jQuery вы бы использовали в качестве альтернативы? Возможно ли это в jQuery? Цифры будут работать в IE6. Глупый дерьмовый браузер ... –
Честно говоря, я не знаю, какой уровень поддержки jQuery для XHTML. Я предлагаю вам спросить об одном из списков рассылки jQuery.Что касается IE, это работает, потому что IE не поддерживает XHTML как XML, он просто рассматривает его как обычный HTML, где, конечно, «innerHTML» работает отлично. – Alohci
Я преждевременно отмечал это, как ответил. Сожалею. Внутренний бит HTTML не объясняет, почему я могу успешно использовать метод append(), когда создаю узел в фрагменте документа (см. EDIT). –