Chrome扩展程序:无法从后台功能获得响应

时间:2014-10-31 16:56:16

标签: javascript json google-chrome-extension

我已经做了一百万次(甚至在同一个项目中),但不知怎的,以下代码不起作用:

inside content-script:

function DrawTrophies()
{
    $(document).ready(function()
    {
        if (window.location.pathname.indexOf("/about") > 0)
        {
                if ($('#trophyDisplay').length > 0) {
                    return;
                }
                var userId=GetCurrentUserId();
                chrome.runtime.sendMessage(
                {
                    Action: "getTrophiesForUser",
                    UserId: userId
                }, function(response)
                {
                    console.log("YAY!");
                });
           // }
       }});}

在后台脚本中:

// Trophies
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
if (request.Action==="getTrophiesForUser") {
        var file="http://www.example.com/php/loadtrophies.php?version=1.0&userId="+request.UserId;
        $.getJSON(file, function(trophies) {
            sendResponse({Result: JSON.stringify(trophies)});
        }); 
    }
});

代码已运行,我甚至可以从后台脚本中查看JSON.stringify(trophies)的值,但 console.log("YAY!")永远不会被称为

控制台中根本没有错误消息。是什么让它与代码中的其他20个位置有所不同:

  1. 我从后台脚本获取外部JSON内容。
  2. 运行脚本的页面位于https上。因为我需要的内容来自http网站,这是将代码放在后台页面的主要原因,因为内容脚本不允许这样做
  3. 可能这些都是问题的根源吗?

0 个答案:

没有答案