Javascript 无法使用XMLdom中的querySelectorAll在ie中显示js脚本
所以我一直在到处搜索,尝试了一切,但我的脚本仍然没有显示在IE中!!任何版本!它在FF和Chrome中显示得非常漂亮,但是ie,AAAAA RGH!!我将doctype更改为Javascript 无法使用XMLdom中的querySelectorAll在ie中显示js脚本,javascript,internet-explorer,Javascript,Internet Explorer,所以我一直在到处搜索,尝试了一切,但我的脚本仍然没有显示在IE中!!任何版本!它在FF和Chrome中显示得非常漂亮,但是ie,AAAAA RGH!!我将doctype更改为,在头部添加了标签,检查我的浏览器是否处于怪癖模式或兼容模式,只是在标准模式下运行,删除了我的cookie、历史记录并重置了我的ie设置,检查了我的安全设置,但仍然什么都没有!我还缺什么?我正在寻找那个“缺失的链接”,它将最终在ie中显示我的脚本。任何想法或帮助都将不胜感激。 情境:我使用html模板来显示XML文件,并使用
,在头部添加了
标签,检查我的浏览器是否处于怪癖模式或兼容模式,只是在标准模式下运行,删除了我的cookie、历史记录并重置了我的ie设置,检查了我的安全设置,但仍然什么都没有!我还缺什么?我正在寻找那个“缺失的链接”,它将最终在ie中显示我的脚本。任何想法或帮助都将不胜感激。
情境:我使用html模板来显示XML文件,并使用js
JS:
var xmlhttp,xmlDoc,y
var xmlhttp=new XMLHttpRequest();
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();//IE7+、Firefox、Chrome、Opera、Safari的代码
}
else if(window.ActiveXObject)
{
xmlhttp=newActiveXObject(“Microsoft.xmlhttp”);//IE6、IE5的代码
}
open(“GET”,“/localfile/xmlfilename.xml”,false);
xmlhttp.send();
var xmlDoc=xmlhttp.responseXML;
变量y=xmlDoc.querySelectorAll(“.class1.class2”);
document.write(“对于(i=0;主线程上的iSynchronous XMLHttpRequest已被弃用,因为它会对最终用户的体验产生有害影响。有关更多帮助,请查看http://xhr.spec.whatwg.org/在FF和Chrome中都有,在ie中没有错误。我知道JQuery有一些很酷的方法,但我更愿意使用js来显示我的内容。很抱歉让你失望但是我做错了什么呢?首先,试着用jQuery做ajax的事情。
如果它起作用,你就会知道问题出在ajax代码上…在重新检查我的ajax之后,当我读到一篇关于XMLDocument对象的文章时,我正在为GetElementsByCassName和querySelectorAll寻找另一种方法:&读到ie都不支持这两种方法第三次,但使用jQuery。ie的错误控制台一直告诉我querySelectorAll方法不受支持,这是有道理的。感谢Guillerme的帮助。终于找到了答案!!当我加载整个xml文档时,我的ajax工作得很好。但是,当我添加参数进行筛选时,只显示带有特定类而不是整个文档,
getElementsbyClassName
和querySelectorAll
在ie中不起作用,后来读到ie n-e版本也不支持这两个类:。我花了很长时间研究了新的解决方案,以及js中的所有内容。我听取了您的建议,使用jquery上传我的文档,并开始使用参数和方法仅显示具有特定类的节点,并且跨浏览器兼容。如果有人需要,请执行以下操作:
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>
$.ajax({
键入:“GET”,
url:“/file/rssfeed.xml”,
数据类型:“xml”,
成功:函数(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();
$(“#提要”)。追加(“”+标题+”
“+日期+”
“+说明+” );
});
}
});
我在html中添加了一个带有id=“feed”
的ul
标记,每个帖子都有li
s标记。最初,我使用js上传xml文档并显示html模板中的所有节点,但不得不使用jquery过滤并仅显示具有单独类的xml节点(item.class1,item.class2
)。没有参数的原始js/ajax脚本是跨浏览器兼容的,我现在使用的jquery脚本在Chrome、FF&IE中过滤和显示!!耶!!接受IE
<?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>
<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>