是否可以使用javascript禁用浏览器中选项卡的互联网并切断与服务器的连接?就像在防火墙中禁用传出连接一样。
模拟网络错误的最简单方法可能是使用 Service Workers,通过拦截请求并用您自己的内容劫持响应:
self.addEventListener('fetch', event => event.respondWith(
event.request.url.matches(BLOCK) ? Response.error() : fetch(event.request)
));
另一种可行的方法,也许可以更好地传达您实际尝试完成的任务,是添加适当的“内容安全策略”指令。您可以通过服务器通过响应标头添加它们、静态地添加到 HTML 标记中或动态添加元素到 DOM 来实现此目的。
您可以在 js 中设置阻止每个连接的 CSP 策略,如下所示:
{ // Go Offline
const meta = document.createElement('meta');
meta.httpEquiv = "Content-Security-Policy";
meta.content = "default-src 'none';";
document.head.appendChild(meta);
}
如果已在响应标头或 HTML 中设置 CSP 策略,则此操作将不起作用