大多数服务器在页面的响应标头中返回服务器时间。对于当前请求,JavaScript 无法看到这些标头,并且 Greasemonkey (尚未)提供查看它们的方法。
不过,Greasemonkey 可以通过特殊的HEAD
AJAX 获取服务器时间。这是一个完整的用户脚本:
// ==UserScript==
// @name _Get web server time
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant GM_xmlhttpRequest
// ==/UserScript==
GM_xmlhttpRequest ( {
url: location.href,
method: "HEAD",
onload: function (rsp) {
var serverTime = "Server date not reported!";
var RespDate = rsp.responseHeaders.match (/\bDate:\s+(.+?)(?:\n|\r)/i);
if (RespDate && RespDate.length > 1) {
serverTime = RespDate[1];
}
console.log ("Server Time: ", serverTime);
}
} );
谨防:
- 如果服务器尝试将页面“本地化”到您的时区,则服务器时间可能与网页上的时间不同。大多数优质服务器以格林威治标准时间报告他们的时间。
- 获取的时间通常在目标页面看到的时间的几毫秒内。但是,根据您的脚本、页面、网络流量等,获取时间也可能在目标页面启动时间之后几秒钟。你不能得到一个精确的匹配。