JavaScript-结果显示在IE,但不是Chrome或FF
JavaScript - Results Displaying in IE but not Chrome or FF
所以,我是Javascript的新手,让我们把它排除在外。
无论如何,我有以下代码可以在IE中工作,但不能在Chrome或FF中工作。它应该从Reddit RSS中获取数据,然后输出它,仅此而已。它只在IE中运行。有人能解释我在这里做错了什么吗?
<html>
<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
var result = null;
$.ajax({
url: "http://www.reddit.com/.rss",
type: 'get',
dataType: 'html',
async: false,
success: function(data) {
result = data;
}
});
document.write(result);
</script>
</head>
</body>
</html>
$.ajax({
url: "http://www.reddit.com/.rss",
type: 'get', dataType: 'html',
async: false,
success: function(data) {
$("#some-div").html(data);
} });
由于$.ajax
是异步的,您有竞争条件。改为在成功处理程序中显示结果,以确保请求已完成。
$.ajax({
url: "http://www.reddit.com/.rss",
type: 'get',
dataType: 'html',
async: false,
success: function(data) {
document.write(data);
}
});
更新
由于您将async设置为false,因此上述语句不适用。然而,我从来没有找到使用document.write()
的好理由,这可能是您问题的一部分。尝试使用其他方法将数据注入页面,如.html()
、.append()
、alert()
等。在document.ready
中这样做也不会有什么坏处。
$(document).ready(function() {
var result = null;
$.ajax({
url: "http://www.reddit.com/.rss",
type: 'get',
dataType: 'html',
async: false,
success: function(data) {
result = data;
}
});
alert(result);
$("body").append(result);
});
以这种方式处理:
(function(url, callback) {
jQuery.ajax({
url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
dataType: 'json',
success: function(data) {
callback(data.responseData.feed);
}
});
})('http://www.reddit.com/.rss', function(feed) {
var entries = feed.entries,
feedList = '';
for (var i = 0; i < entries.length; i++) {
feedList += '<li><a href="' + entries[i].link + '">' + entries[i].title + '</a></li>';
}
jQuery('.rssfeed > ul').append(feedList);
});
HTML:
<div class="rssfeed">
<h4>RSS News</h4>
<ul></ul>
</div>
示例:http://jsfiddle.net/QusQC/
相关文章:
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- 在FF和Chrome中接收用于JavaScript函数的TypeError
- FF和Chrome中的 ftp:// 网页不会加载 file:// 脚本
- HTML5 video .end 事件在 Chrome 中调用,但不是 FF
- jQuery不在Chrome中运行,在FF中工作
- 在KoGrid中使用knockoutjs不适用于Chrome或FF,但适用于IE8
- 自定义Angular.js过滤器在IE8中不返回任何内容,在Chrome/FF中运行良好
- Chrome/FF中的对象处理
- IE不将CSS应用于JS,适用于Chrome / FF
- Chrome/FF 与 IE8 中的搜索框对齐方式
- Chrome/FF API,用于使用标签's的Javascript
- chrome/ff中带有createObjectURL的对象URL的数据URI
- 手动删除值后不能通过JS设置输入值(Chrome &FF)
- 如何在Chrome/FF中执行/页面加载之前修改内联JS
- 未捕获的SyntaxError:无效的正则表达式在Chrome, FF和IE fine
- 展开嵌套无序列表和水平显示在IE/Chrome/FF
- 在Chrome/FF比赛条件