我正在尝试在javascript中编写一些代码,使用用户的cookie来显示包含一些信息的框。该页面打开时会显示一些包含来自Google新闻RSS源的新闻文章的框。我正在使用RSS的第三方应用程序; Feed包含在HTML代码中:
<script language="JavaScript" src="http://www.feedroll.com/rssviewer/feed2js.php?src=http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3Dbarack%2Bobama%26output%3Drss&num=4&date=y&targ=y&utf=y&css=feed" charset="UTF-8" type="text/javascript"></script>
用户可以移动框,我想使用cookie存储框位置,这样如果用户重新访问页面,框将位于同一位置。但是,当我尝试从cookie中的信息加载页面时,这些框是空白的。这是我的代码看起来像一个例子(使用关键字“Barack Obama”的新闻RSS提要):
// Render boxes into HTML
function renderItem(container) {
var wrapper = document.getElementById(container);
var div_box = document.createElement('div');
var feed_url = 'http://www.feedroll.com/rssviewer/feed2js.php src=http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3Dbarack%2Bobama%26output%3Drss&num=4&date=y&targ=y&utf=y&css=feed';
var div_box_feed = document.createElement('div');
var feed_script = document.createElement('script');
feed_script.setAttribute('language', 'JavaScript');
feed_script.setAttribute('src', feed_url);
feed_script.setAttribute('charset', 'UTF-8');
feed_script.setAttribute('type', 'text/javascript');
div_box_feed.appendChild(feed_script);
div_box.appendChild(div_box_feed);
wrapper.appendChild(div_box);
}
当页面加载时,会出现该框,但RSS源中的新闻文章不存在且该框为空。但是,当我查看源代码时,它与初始框的代码(显示新闻文章)完全相同。
有人知道什么是错的吗?
谢谢!
答案 0 :(得分:1)
你从未在这里声明column_div
:
wrapper.appendChild(column_div);
你的意思是:
wrapper.appendChild(div_box);
答案 1 :(得分:0)
我认为默认情况下,以这种方式创建的脚本元素的async
属性设置为true
,因此在检索JS之前,其余代码将会执行。
column_div
变量来自哪里?
答案 2 :(得分:0)
您错过了一个问号,将帖子变量与网址分开,因此网址正在解析为
var feed_url = 'http://www.feedroll.com/rssviewer/feed2js.php%20src=http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3Dbarack%2Bobama%26output%3Drss&num=4&date=y&targ=y&utf=y&css=feed';
应该是
var feed_url = 'http://www.feedroll.com/rssviewer/feed2js.php?src=http%3A%2F%2Fnews.google.com%2Fnews%3Fq%3Dbarack%2Bobama%26output%3Drss&num=4&date=y&targ=y&utf=y&css=feed'