2013-10-15 156 views
0

我想創建一個擴展來顯示從我的飼料中使用谷歌飼料API獲取的所有最新帖子。爲了實現這一點,我在background.js添加以下代碼:cross rider擴展使用谷歌飼料api從飼料中獲取新帖子

appAPI.ready(function() { 
// Global variable to hold the toggle state of the button 
var buttonState = true; 

// Sets the initial browser icon 
appAPI.browserAction.setResourceIcon('images/icon.png'); 
// Sets the tooltip for the button 
appAPI.browserAction.setTitle('My Postreader Extension'); 
appAPI.browserAction.setPopup({ 
    resourcePath:'html/popup.html', 
    height: 300, 
    width: 300 
});}); 

popup.html

<!DOCTYPE html><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<script type="text/javascript"> 
function crossriderMain($) {eval(appAPI.resources.get('script.js')); }</script> 
</head> 
<body><div id="feed"></div></body></html> 

的script.js文件是─

google.load("feeds", "1"); 

function initialize() { 
    var feed = new google.feeds.Feed("http://www.xxxxx.com/feed/"); 
    feed.setNumEntries(10); 
    feed.load(function(result) { 
    if (!result.error) { 
     var container = document.getElementById("feed"); 
     for (var i = 0; i < result.feed.entries.length; i++) { 
     var entry = result.feed.entries[i]; 
     var div = document.createElement("div"); 
     var link = document.createElement('a'); 
     link.setAttribute('href', entry.link); 
     link.setAttribute('name', 'myanchor'); 
     div.appendChild(document.createTextNode(entry.title)); 
     div.appendChild(document.createElement('br')); 
     div.appendChild(link); 
     div.appendChild(document.createElement('br')); 
     container.appendChild(div); 
     } 
    } 
    }); 
} 
google.setOnLoadCallback(initialize); 

但我無法得到所需的結果。彈出窗口不顯示任何內容。它只是保持空白。

+0

background.js代碼和popup.html代碼看起來一般,但似乎從script.js文件,「谷歌」對象沒有定義?你是否在另一個腳本中加載它?是否有意在popup.html頭文件中爲google feed API提供另一個SCRIPT標籤?另外,你是否看到任何錯誤[控制檯中的消息](http://docs.crossrider.com/#!/guide/howto_console_log)? [免責聲明:我是一名Crossrider員工] – Shlomo

+0

在控制檯中沒有收到任何錯誤消息 – rammurtee

+0

是的,應該有另一個腳本標記來在google.html中餵養api。謝謝,讓我試試 – rammurtee

回答

0

由於您使用了彈出窗口的內容的資源文件,這是最好的加載從crossriderMain功能遠程腳本,如下所示:

<!DOCTYPE html> 
<html> 
<head> 
<!-- This meta tag is relevant only for IE --> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<script type="text/javascript"> 
function crossriderMain($) { 
    appAPI.db.async.get('style-css', function(rules) { 
    $('<style type="text/css">').text(rules).appendTo('head'); 
    }); 

    appAPI.request.get({ 
    url: 'http://www.google.com/jsapi', 
    onSuccess: function(code) { 
     $.globalEval(code); 
     appAPI.db.async.get('script-js', function(code) { 
     // runs in the context of the extension 
     $.globalEval(code.replace('CONTEXT','EXTN')); 

     // Alternatively, run in context of page DOM 
     $('<script type="text/javascript">').html(code.replace('CONTEXT','PAGE DOM')).appendTo('head'); 
     }); 
    } 
    }); 
} 
</script> 
</head> 
<body> 
<h1>Hello World</h1> 
<div id="feed"></div> 
</body> 
</html> 

[免責聲明:我是一個Crossrider員工]