2012-06-22 2 views
0

У меня проблемы с Internet Explorer 9 и Firefox 13. Я создаю веб-интерфейс с использованием HTML, XSL и XML, он отлично работает с Chrome, Opera и Safari без каких-либо изменений, но он не работает с Firefox 13 и Internet Explorer 9. С Firefox есть несколько страниц (не все), которые не могут загружать значения XML, в Internet Explorer я не могу загрузить css для html-страниц, которые используют XSLT, но я могу правильно загрузить все параметры.XSLT работает с Opera, Safari и Chrome, но не с Firefox 13 и Internet Explorer 9

Вы можете найти пример страницы, которая не работает (HTML, XML, XSL)

HTML

<html> 
<head> 
<script> 
function loadXMLDoc(dname) 
{ 
if (window.XMLHttpRequest) 
    { 
    xhttp=new XMLHttpRequest(); 
    } 
else 
    { 
    xhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xhttp.open("GET",dname+"?id="+Math.random(),false); 
xhttp.send(""); 
return xhttp.responseXML; 
} 

function displayResult() 
{ 
xml=loadXMLDoc("sensorParameters.xml"); 
xsl=loadXMLDoc("sensorParameters.xsl"); 
// code for IE 
if (window.ActiveXObject) 
    { 
    ex=xml.transformNode(xsl); 
    document.getElementById("example").innerHTML=ex; 
    } 
// code for Mozilla, Firefox, Opera, etc. 
else if (document.implementation && document.implementation.createDocument) 
    { 
    xsltProcessor=new XSLTProcessor(); 
    xsltProcessor.importStylesheet(xsl); 
    resultDocument = xsltProcessor.transformToFragment(xml,document); 
    document.getElementById("example").appendChild(resultDocument); 
    } 
} 
</script> 
</head> 
<body onload="displayResult()"> 
<div id="example" /> 
</body> 
<head> 
<meta http-equiv="cache-control" content="no-cache"> 
</head> 
</html> 

XSL

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:template match="/"> 
<html> 
    <head> 
      <title>Interface</title> 
      <link rel="stylesheet" type="text/css" href="style.css" /> 
    </head> 
    <body> 
    ... 
    (It continues, but it is not important...) 
    </body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 

XML

<?xml version="1.0" encoding="ISO-8859-1"?> 
<?xml-stylesheet type="text/xsl" href="sensorParameters.xsl"?> 
<section1> 
<section2> 
      ......... some data 
</section2> 
<section3> 
      ......... some data 
</section3> 
      ......... 
</section1> 

Любая помощь будет оценена ованные.

Marco

+0

Можете ли вы разместить URL-адрес для минимального, но полного образца, который не работает с Firefox, и более подробно объяснить, что не удается, например. если вы получите ошибку, какой именно? –

+0

Возможно, вам понравится Saxon-CE, который, надеюсь, решит большинство проблем кросс-браузерной совместимости для вас. –

+0

@MartinHonnen Привет, Мартин, спасибо за ваш ответ. Я не могу опубликовать URL-адрес, потому что я работаю локально. Случается, что если у меня есть таблица, которую я хочу заполнить некоторыми значениями из XML-файла, Firefox не сможет их загрузить. Однако, если я использую firebug, чтобы посмотреть на источник страницы, я вижу, что firefox правильно загружает параметры, но он не может их показать. – user1474456

ответ

0

Что касается проблемы IE, я думаю, что одна возможная причина проблемы заключается в ваш подход с использованием XSLT, чтобы создать полный HTML-документ с html корневого элемента, head раздел с link в таблице стилей, но затем чтобы попытаться включить результат XSLT в элемент div (где IE затем, вероятно, игнорирует link). Чтобы исправить это, вам нужно будет изменить подход и убедитесь, что вы добавили link элементы, созданные XSLT, в head документа HTML, в который вы вставляете результат преобразования XSLT.

Смежные вопросы