2012-01-31 90 views
1

我正在尝试在JavaScript中编写一些代码,该代码使用用户的Cookie来显示包含某些信息的框。该页面打开时会显示一些框,其中包含来自Google新闻RSS Feed的新闻文章。我正在使用RSS的第三方应用程序;饲料包含在HTML代码,例如:
JavaScript - 写入不显示的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中的信息加载页面时,这些框是空白的。这是我的代码看起来像(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

'wrapper.innerHTML = ''; ' - 你不是在删除那里的内容,是吗? – mpen 2012-01-31 03:15:25

+0

旧代码的残余 - 并不意味着在这里包括。对困惑感到抱歉! – user1015830 2012-01-31 03:25:33

回答

1

你从来没有在这里宣布column_div

wrapper.appendChild(column_div); 

你的意思是:

wrapper.appendChild(div_box); 

+0

这正是我想说的。对你好! OP:通常,解决这些问题的一种好方法是在逐步完成逻辑时查看变量中的数据。像这样小的东西可以快速有效地暴露这些错误。查看关于使用Firebug控制台的中断/标记功能的一些教程。 – Tim 2012-01-31 03:18:57

+0

你说得很对 - 这是一个错字!我刚刚编辑了上面的代码。 – user1015830 2012-01-31 03:21:27

+0

我认为这个问题在别的地方。我将上面这些代码生成的代码复制并粘贴到我的HTML页面中,并且框中显示的内容与所有新闻文章完美匹配。 – user1015830 2012-01-31 03:23:04

0

我相信,默认情况下,以这种方式创建的脚本元素的async属性设置为true,所以其余代码将在您检索到JS之前执行。

column_div变量来自哪里?

0

你缺少一个问号来分隔的URL后的变量,所以URL解析为

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' 
+0

这是一个错字,对不起!我认为这个问题是其他地方,但:( – user1015830 2012-01-31 03:20:51