2012-01-31 58 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