JavaScript - 编写没有出现的html元素?

时间:2012-01-31 03:12:40

标签: javascript

我正在尝试在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源中的新闻文章不存在且该框为空。但是,当我查看源代码时,它与初始框的代码(显示新闻文章)完全相同。

有人知道什么是错的吗?

谢谢!

3 个答案:

答案 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'