Javascript 在google chrome扩展中从internet获取当前时间

Javascript 在google chrome扩展中从internet获取当前时间,javascript,http,google-chrome-extension,httprequest,Javascript,Http,Google Chrome Extension,Httprequest,如何从我正在编写的google chrome扩展内容脚本中从互联网上获取当前时间(日期)?请不要使用JQuery!我从未处理过http请求(或任何服务器请求),所以请包含详细的代码! 谢谢 更新 考虑到从当前网页发送请求时存在限制,我建议您在后台页面发送ajax调用,然后使用将数据传输到内容脚本。您可以查看更多详细信息 manifest.json { "name": "36716999", "version": "0.1", "manifest_version": 2,

如何从我正在编写的google chrome扩展内容脚本中从互联网上获取当前时间(日期)?请不要使用JQuery!我从未处理过http请求(或任何服务器请求),所以请包含详细的代码! 谢谢

更新 考虑到从当前网页发送请求时存在限制,我建议您在后台页面发送ajax调用,然后使用将数据传输到内容脚本。您可以查看更多详细信息

manifest.json

{
    "name": "36716999",
    "version": "0.1",
    "manifest_version": 2,
    "content_scripts": [
        {
            "js": [
                "content.js"
            ],
            "matches": [
                "<all_urls>"
            ]
        }
    ],
    "background": {
        "scripts": ["background.js"],
        "persistent": false
    },
    "permissions": [
        "http://www.timeapi.org/utc/now"
    ]
}
{
    "name": "36715494",
    "version": "0.1",
    "manifest_version": 2,
    "content_scripts": [
        {
            "js": [
                "content.js"
             ],
             "matches": [
                 "<all_urls>"
             ]
        }
    ],
    "permissions": [
         "https://www.timeapi.org/utc/now",
         "http://www.timeapi.org/utc/now"
    ]
}
background.js

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
    if (request.query === "currentTime") {
        var xhr = new XMLHttpRequest();
        xhr.onload = function () {
            sendResponse({currentTime: xhr.responseText});
        };
        xhr.open("GET", "http://www.timeapi.org/utc/now");
        xhr.send();

        return true;
    }
});
以前的 您可以对
http://www.timeapi.org/utc/now
为了获得上网时间,考虑到您不想处理jQuery,这是一个非常简单的ajax调用,您可以使用本机实现

manifest.json

{
    "name": "36716999",
    "version": "0.1",
    "manifest_version": 2,
    "content_scripts": [
        {
            "js": [
                "content.js"
            ],
            "matches": [
                "<all_urls>"
            ]
        }
    ],
    "background": {
        "scripts": ["background.js"],
        "persistent": false
    },
    "permissions": [
        "http://www.timeapi.org/utc/now"
    ]
}
{
    "name": "36715494",
    "version": "0.1",
    "manifest_version": 2,
    "content_scripts": [
        {
            "js": [
                "content.js"
             ],
             "matches": [
                 "<all_urls>"
             ]
        }
    ],
    "permissions": [
         "https://www.timeapi.org/utc/now",
         "http://www.timeapi.org/utc/now"
    ]
}

对JS和互联网上的简单搜索知之甚少让我想到了这一点:这需要本地计算机的时间。我想从互联网上获得实时信息。我明白了,你是对的,也许你可以使用API或其他什么?我打赌我可以,但我什么都做不到。。如果有人能给我一段有效的代码,我将不胜感激。如果你不想处理http请求,你如何获得上网时间?@Xan,显然我又过时了。感谢您的关注,我将在阅读相关规范后进行更新。我说这部分是开玩笑的,您的代码没有本质上的错误-但是使用
load
事件看起来更干净。@Xan,是的,我知道您的意思。我简直不敢相信在您注释掉之前我不知道
XMLHttpRequest
onload
事件。只是一个小问题-起初它不起作用。我检查了chrome的控制台,它说它阻止了timeapi.org,因为“你的连接不是私有的”。它让我“无论如何都可以继续访问该网站”,从那时起,它就起了作用。但我真的不希望我的用户必须处理这个错误。在权限中,我现在有“”,所以我想我已经涵盖了这一点。有什么建议吗?也许是其他时间服务器?@Nekoshet,我已经更新了我的答案,简单地说,从网页发送http请求受到同源策略的限制,我不确定timeapi是否有https api,这可能会影响您在https页面中进行ajax调用。推荐的方法是在后台页面发送ajax调用,然后使用消息传递将数据传输到内容脚本,我在文章中包含了示例代码和参考链接,请尝试。