如何在JavaScript中制作新闻小部件?

时间:2011-12-31 09:30:22

标签: javascript html

我有一个新闻网站,我的一些合作伙伴希望收录最新消息。他们现在用iframe这样做,但他们要求javascript版本,以便他们可以设置div,请帮我如何在javascript中做到这一点?

我当前的脚本就像这样

<iframe height="30%" width="50%" scrolling="no" frameborder="0" src="http://mysite.com/latestnews.php"></iframe>

1 个答案:

答案 0 :(得分:2)

当你说“他们要求的JavaScript版本”时,可以解释为只提供数据并将其留给客户添加他们喜欢的任何html标记和样式。如果这就是您所询问的内容,那么您可以在您的站点上设置一个处理JSONP请求的页面。

JSONP基本上返回一个JSON字符串,但包含在一个JavaScript函数调用中,并在请求中指定了一个函数名。因此,假设您向网站添加了一个新网址,例如http://mysite.com/newsfeed.php。您的用户可以通过JavaScript代码将其命名为:

http://mysite.com/newsfeed.php?callback=someFunction

您的服务器将返回文本:

someFunction('[{"title" : "news item title", "body" : "news item body here"},
               {"title" : "2nd item title", "body" : "2nd item body here"}]');

(显然你会使用任何JSON结构对你存储/呈现你的新闻的方式有意义,但关键是请求中指定的函数名称作为响应的一部分被回显。)

PHP输出类似的东西并不是很复杂,就像这样:

<?php header('content-type: application/json; charset=utf-8');

$data = array(array("title" => "news item title", "body" => "news item body here"),
              array("title" => "2nd item title", "body" => "2nd item body here"));

echo $_GET['callback'] . '('.json_encode($data).')';

显然,您不会有硬编码的新闻项,您可以根据需要从新闻数据库中填充$data数组。

然后你要向你的合作伙伴提供两件事:1。JSONP请求的预期格式,它实际上只是如上所示的URL和回调参数名称,以及2. JSON的输出格式 - 某些东西类似于上述内容,但可能与日期,可能是署名,来源,每个新闻项目的字段有关。其余的由他们自己决定:有几个JS库使JSONP调用变得容易,但可能你的合作伙伴可以自己管理这些细节,因为JSONP是相当标准的。