所以我一直在搜索,尝试了一切,但仍然,我的脚本没有在IE中显示!任何版本!它显示在FF和Chrome精美,但即AAAAAARGH !!我将文档类型更改为<!DOCTYPE html>
,我将<meta http-equiv="X-UA-Compatible" content="IE=edge" />
标记添加到我的头部,检查我的浏览器是否处于怪癖模式,或者是compat模式,只是在标准模式下运行,删除了我的Cookie ,历史和重置我的设置,检查我的安全设置,仍然没有!我还缺少什么?我正在寻找那个&#34;缺少链接&#34;这将最终在ie中显示我的脚本。任何想法或帮助将不胜感激。
情况:我正在使用html模板来显示和使用js的XML文件。
JS:
var xmlhttp, xmlDoc, y
var xmlhttp = new XMLHttpRequest();
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
}
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
}
xmlhttp.open("GET", "/localfile/xmlfilename.xml", false);
xmlhttp.send();
var xmlDoc = xmlhttp.responseXML;
var y = xmlDoc.querySelectorAll(".class1, .class2");
document.write("<ul id='feed' data-role='listview' data-inset='true'>");
for (i=0;i<y.length;i++)
{
document.write("<li><strong>"+y[i].getElementsByTagName("title")[0].childNodes[0].nodeValue+"</strong><br>"+y[i].getElementsByTagName("pubDate")[0].childNodes[0].nodeValue+"<br>"+y[i].getElementsByTagName("description")[0].childNodes[0].nodeValue+"</li>");
}
document.write("</ul>");
XML:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<item class="class1">
<title>Update's Title</title>
<pubDate>28 Oct 2015</pubDate>
<description><![CDATA[Whatever the update is with some <a href="/link/file.htm">links</a>.]]></description>
</item>
<item class="class2">
<title>Another Update Title</title>
<pubDate>1 Oct 2015</pubDate>
<description><![CDATA[Some more <a href="/link/file2.htm#anchor">html tags</a> in the !cdata.]]></description>
</item>
</channel>
</rss>
就像我说的,我使用的是html模板并使用js来渲染我的XML数据。它在Chrome和FF中显示非常好,但不是在5+或边缘。这一切的美妙之处在于我在任何一个浏览器中都没有出现任何错误,除了FF和Chrome中的Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/
,并且没有错误。我知道JQuery有一些很酷的方法,但宁愿坚持使用js来显示我的内容。抱歉沮丧,但是我做错了吗?
答案 0 :(得分:0)
首先,尝试使用jQuery做ajax。 如果它有效,你就会知道问题是ajax代码......
答案 1 :(得分:0)
在重新检查我的ajax后,当我阅读有关XMLDocument对象的文章时,我正在为getElementsByClassName和querySelectorAll搜索替代方法:http://help.dottoro.com/ljbcjfot.php&amp;读到ie既不支持也不支持。呃,第三次必须重新编写脚本,但是使用jQuery。有意义的是,即错误控制台一直告诉我不支持querySelectorAll方法。 滚动眼睛感谢Guilherme的帮助。
答案 2 :(得分:0)
最终找到答案!!当我加载整个xml文档时,我的ajax运行良好。但是,当我添加参数以进行过滤并仅显示具有特定类而不是整个文档的xml节点时,getElementsbyClassName
和querySelectorAll
无法工作,并且稍后读取即不支持ie ne版本:http://help.dottoro.com/ljbcjfot.php。我研究了很长时间尝试新的解决方案,以及js中的所有内容。我接受了你的建议,使用jquery上传我的文档并开始使用参数&amp;方法只显示具有特定类的节点,并且它是跨浏览器兼容的。如果有人需要它:
jquery代码
<head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
</head>
<body>
<ul id="feed"></ul>
<script>
$.ajax({
type: 'GET',
url: '/file/rssfeed.xml',
dataType: 'xml',
success: function(xml){
$(xml).find("item.class1, item.class2").each(function(){
var title = $(this).find('title').text();
var date = $(this).find('pubDate').text();
var description = $(this).find('description').text();
$('#feed').append('<li><strong>'+title+'</strong><br>'+date+'<br>'+description+'</li>');
});
}
});
</script>
</body>
我在html中添加了ul
标记id="feed"
,li
s已针对每个帖子落实到位。最初,我使用js上传xml文档并显示html模板中的所有节点,但必须使用jquery过滤并仅显示具有单独类(item.class1, item.class2
)的xml节点。没有参数的原始js / ajax脚本是跨浏览器兼容的,我现在使用的jquery脚本,过滤器和显示在Chrome,FF&amp; IE浏览器!好极了!!拿那个就是!!