使用chrome扩展代码来从twitter获取推文

时间:2013-01-03 12:57:36

标签: javascript jquery api twitter google-chrome-extension

我正在尝试创建一个Chrome扩展程序,在扩展程序弹出窗口中显示带有主题标签perkytweets的推文,但没有任何内容显示。

这是manifest.json代码

    {
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  }
}

这是popup.html代码

<html>
  <head>
    <title>Getting Started Extension's Popup</title>
    <style>
      body {
        min-width:357px;
        overflow-x:hidden;
      }

      img {
        margin:5px;
        border:2px solid black;
        vertical-align:middle;
        width:75px;
        height:75px;
      }
    </style>


    <script src="script.js"></script>
  </head>
  <body>
  </body>
</html>

这是script.js代码

var req = new XMLHttpRequest();
req.open(
    "GET",
    "http://search.twitter.com/search.atom?q=perkytweets",
    true);
req.onload = showTweets;
req.send(null);


function showTweets()
{
    document.body.appendChild(req.responseXML);
}

1 个答案:

答案 0 :(得分:1)

只有在加载文档时才需要触发请求。尝试将代码包装在onload处理程序

function showTweets() {
    document.body.appendChild(req.responseXML);
}

var req;
window.onload = function() {
    req = new XMLHttpRequest();
    req.open("GET", "http://search.twitter.com/search.atom?q=perkytweets", true);
    req.onload = showTweets;
    req.send(null);
}

<强>更新

您需要允许访问Twitter URL,将其添加到您的清单中:

"permissions": [ "http://search.twitter.com/*" ]

所以你的manifest.json现在看起来像这样:

{
    "name": "My First Extension",
    "version": "1.0",
    "manifest_version": 2,
    "description": "The first extension that I made.",
    "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },
    "permissions": [
        "http://search.twitter.com/*"
    ]
}

<强>更新

req.responseXML尚未成为元素,因此不能直接附加到正文,console.log您的结果并从那里开始。