Преобразование одного и того же файла xsl в ie9 и ie10 дает разные html

У меня есть код XSL, который выглядит так...

<xsl:template name="doHeader">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
<head>
    <xsl:processing-instruction name="IMPORT">
        namespace="search" implementation="../html/scripts/button.htc"
    </xsl:processing-instruction>
    <style type="text/css">
        @import url("../temp/theme.css");
        @import url("../html/css/view.css");
        @import url("../html/css/search.css");
    </style>
    <script src="../html/scripts/utils.js" />
    <script src="../html/scripts/search.js" />
</head>
</xsl:template>

(Конечно, я добавил этот метатег в версию ie10). Во всяком случае, в html, запущенном в ie9, есть код для кнопки, но в ie10 кода кнопки нет.

ie9 выглядит так...

<TR><TD>
    <?import namespace = search urn = "_" implementation = "file:///C:/Users/.../button.htc" /><search:button onclick=handleSubmit() value="OK">
    <DIV>
    <DIV style="LINE-HEIGHT: 1px; BACKGROUND-COLOR: #a1b8c9; MARGIN: 0px 2px; DISPLAY: block; HEIGHT: 1px; FONT-SIZE: 1px">&nbsp;</DIV>
    <DIV style="BORDER-BOTTOM: #a1b8c9 0px solid; BORDER-LEFT: #a1b8c9 1px solid; LINE-HEIGHT: 1px; MARGIN: 0px 1px; DISPLAY: block; BACKGROUND: #eef5f9; HEIGHT: 1px; FONT-SIZE: 1px; BORDER-TOP: #a1b8c9 0px solid; BORDER-RIGHT: #a1b8c9 1px solid">&nbsp;</DIV>
    <DIV style="BORDER-BOTTOM: #a1b8c9 0px solid; POSITION: relative; TEXT-ALIGN: center; BORDER-LEFT: #a1b8c9 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eef5f9; PADDING-LEFT: 20px; PADDING-RIGHT: 20px; DISPLAY: block; FONT-FAMILY: tahoma; WHITE-SPACE: nowrap; COLOR: #000000; FONT-SIZE: 10pt; BORDER-TOP: #a1b8c9 0px solid; CURSOR: default; BORDER-RIGHT: #a1b8c9 1px solid; PADDING-TOP: 4px; TOP: 0px; LEFT: 0px" tabIndex=0>
    <DIV>OK</DIV>
    <P style="POSITION: absolute; COLOR: #ff0000; TOP: 5px; LEFT: 35px"></P></DIV>
    <DIV style="BORDER-BOTTOM: #a1b8c9 0px solid; BORDER-LEFT: #a1b8c9 1px solid; LINE-HEIGHT: 1px; MARGIN: 0px 1px; DISPLAY: block; BACKGROUND: #eef5f9; HEIGHT: 1px; FONT-SIZE: 1px; BORDER-TOP: #a1b8c9 0px solid; BORDER-RIGHT: #a1b8c9 1px solid">&nbsp;</DIV>
    <DIV style="LINE-HEIGHT: 1px; BACKGROUND-COLOR: #a1b8c9; MARGIN: 0px 2px; DISPLAY: block; HEIGHT: 1px; FONT-SIZE: 1px">&nbsp;</DIV></DIV></search:button>
</TD></TR>

но в ie10 это выглядит...

<TR><TD><search:button onclick=handleSubmit() value="OK"></search:button></TD></TR>

Что мне нужно сделать, чтобы заставить ie10 генерировать тот же (даже) html, что и ie9?


person Joboodi    schedule 02.11.2012    source источник
comment
Пожалуйста, отредактируйте вопрос и предоставьте оба результата -- в IE9 и в IE10 -- не только результат IE9. Я предполагаю, что вам может понадобиться: <xsl:processing-instruction name="import"> -- IE10 может быть более чувствителен к регистру, чем IE9.   -  person Dimitre Novatchev    schedule 03.11.2012
comment
Я думаю, что элемент meta принадлежит внутри head, а не перед ним. Это может быть одной из потенциальных проблем.   -  person Martin Honnen    schedule 03.11.2012
comment
@Dimitre изменение регистра, к сожалению, не сработало.   -  person Joboodi    schedule 05.11.2012
comment
@Martin перемещение метатега внутри head тоже не сработало.   -  person Joboodi    schedule 05.11.2012
comment
Я бы попытался изолировать проблему, сначала создав статический HTML-документ, используя этот htc. Если IE10 отображает это так, как вы хотите, нам нужно попытаться убедиться, что вывод XSLT отображается так же, как статический HTML. В настоящее время неясно, связана ли проблема с тем, что IE10 не поддерживает такое использование htc, или это проблема XSLT.   -  person Martin Honnen    schedule 06.11.2012
comment
@Martin, когда я копирую и вставляю этот рабочий код IE9 в html, созданный с помощью инструментов F12 с IE10, он отображает кнопку в IE10.   -  person Joboodi    schedule 06.11.2012
comment
Извините, но я не думаю, что мы сможем решить эту проблему, обменявшись комментариями на Stackoverflow. Можете ли вы опубликовать ссылки на минимальные, но полные примеры, иллюстрирующие проблему?   -  person Martin Honnen    schedule 06.11.2012
comment
Нет, извините, у меня нет времени загружать, устанавливать и проверять что-то локально здесь, может быть, кто-то другой захочет это сделать. Вы можете задать вопрос на social.msdn.microsoft.com/Forums/ en-US/iewebdevelopment/threads в качестве альтернативы поиску помощи здесь, хотя в любом случае ваши шансы найти помощь выше, если у вас есть URL-адреса, которые другие могут посетить непосредственно с помощью браузера.   -  person Martin Honnen    schedule 09.11.2012
comment
Да, я написал там в то же время, что и этот пост, и у меня там тоже не было ответов.   -  person Joboodi    schedule 12.11.2012


Ответы (1)


Мне нужно было указать набор символов UTF-8 при преобразовании xml в html. Мне пришлось добавить этот тег в начало моих XSL-файлов.

<xsl:output method="html" encoding="UTF-8"/>

В некоторых файлах существовало <xsl:output method="html" />, но добавление кодировки решило проблему.

person Joboodi    schedule 28.11.2012