**更新:
显然,这个问题演变成了XMLHttpRequest问题:
XMLHttpRequest cannot load http://api.twitter.com/1/statuses/user_timeline.json?screen_name=bogdanch&. Origin http://adfix.ro is not allowed by Access-Control-Allow-Origin.
我使用的代码是:
(function ($) {
var Twitter = {
init: function () {
this.insertLatestTweets("bogdanch")
},
insertLatestTweets: function (a) {
var b = 5;
var c = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=" + a + "&count=" + b + "&callback=?";
$.getJSON(c, function (b) {
var c = '<marquee behavior="scroll" scrollamount="1" direction="left">';
for (var d in b) {
c += '<a href="http://twitter.com/' + a + "#status_" + b[d].id_str + '">' + b[d].text + " <i>" + Twitter.daysAgo(b[d].created_at) + "</i></a>"
}
c += "</marquee>";
$("#twitter p").replaceWith(c);
Twitter.fancyMarquee()
})
},
fancyMarquee: function () {
$("#twitter marquee").marquee("pointer").mouseover(function () {
$(this).trigger("stop")
}).mouseout(function () {
$(this).trigger("start")
}).mousemove(function (a) {
if ($(this).data("drag") == true) {
this.scrollLeft = $(this).data("scrollX") + ($(this).data("x") - a.clientX)
}
}).mousedown(function (a) {
$(this).data("drag", true).data("x", a.clientX).data("scrollX", this.scrollLeft)
}).mouseup(function () {
$(this).data("drag", false)
})
},
daysAgo: function (a) {
if ($.browser.msie) {
return "1 day ago"
}
var b = (new Date(a)).getTime();
var c = (new Date).getTime();
var d = Math.round(Math.abs(c - b) / (1e3 * 60 * 60 * 24));
var e = d + " days ago";
if (d == 0) {
e = "today"
} else if (d == 1) {
e = d + " day ago"
}
return e
}
};
Twitter.init()
})(jQuery);
有没有一种方法可以避免XMLHttpRequest问题?
**原始帖子
我想实现我最后5条推文的水平字幕,我遵循了本教程:http://artistutorial.blogspot.ro/2011/09/how-to-make-horizontal-scrolling.html.你可以在这里看到我的版本问题是,当我试图在我的网站上实现它时,它没有加载任何推文,并且使用Chrome检查器,我看到了一个未捕获的TypeError
Cannot call method 'getJSON' of undefined
Twitter.insertLatestTweets
Twitter.init
(anonymous function)
我不明白为什么它在pastebin上有效而在我的网站上无效。有什么想法吗?
这是因为出于某种原因,您使用的jquery.js文件末尾有jQuery.noConflict();
,这使得$
不可用。删除该行,使用jQuery
而不是$
,或者将代码封装在闭包中:
(function($) {
// your code
})(jQuery);
为了避免对api.twitter.com的XMLHttpRequest,我制作了一个php文件作为代理。该文件包含以下代码:
<?php
header('Content-Type: text/xml');
$tweets = file_get_contents('http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=TWITTER_USERNAME_HERE&count=6');
echo $tweets;
?>