我当前正在进行Chrome扩展程序,并希望有一个状态栏显示是否已连接互联网。我们学校的网络服务要求用户登录防火墙才能使用Internet。
我从Check if Internet Connection Exists with Javascript?尝试了这种方法
function hostReachable() {
// Handle IE and more capable browsers
var xhr = new(window.ActiveXObject || XMLHttpRequest)("Microsoft.XMLHTTP");
var status;
// Open new request as a HEAD to the root hostname with a random param to bust the cache
xhr.open("HEAD", "//" + window.location.hostname + "/?rand=" + Math.floor((1 + Math.random()) * 0x10000), false);
// Issue request and handle response
try {
xhr.send();
return (xhr.status >= 200 && (xhr.status < 300 || xhr.status === 304));
} catch (error) {
return false;
}
}
如果我在chrome控制台中声明此函数,则该函数有效,但是如果我将该函数放入扩展脚本中,则控制台会给我此错误。
“ CORS策略已阻止从源'null'访问'file:///?rand = 93870'处的XMLHttpRequest:仅协议方案支持跨源请求:http,数据,chrome,chrome扩展名,https。”
navigator.onLine也不起作用,因为它始终返回true。
谢谢!