javascript - 没有互联网连接时,如何禁用所有锚点?
问题描述
我每 5 秒检查一次,看看我是否在线,如果我不在线,那么我想禁用所有链接。
<script type="text/javascript">
setInterval(function(){
var status = navigator.onLine ? 'enabled-link' : 'disabled-link';/* check whether online */
document.getElementById('anchor').innerHTML = status /* display 'anchor' somewhere */
if(status == 'disabled-link';) {
var anchors = document.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
anchors[i].onclick = function() {return(false);};
};
}
}, 5000);
</script>
解决方案
出了什么问题?
if
你的陈述中有一个分号,这是导致问题的原因。我也更喜欢使用 e.preventDefault() 来停止超链接的正常运行。我不确定简单地返回 false 是否有效。
解决方案:
请改用此代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Simple async sync example</title>
</head>
<body>
<p id="anchor"></p>
<a href="https://www.w3schools.com/">Visit W3Schools.com!</a>
<a href="https://www.w3schools.com/">Visit W3Schools.com!</a>
<a href="https://www.w3schools.com/">Visit W3Schools.com!</a>
<a href="https://www.w3schools.com/">Visit W3Schools.com!</a>
</body>
<script>
setInterval(function(){
var status = navigator.onLine ? 'enabled-link' : 'disabled-link';/* check whether online */
document.getElementById('anchor').innerHTML = status; /* display 'anchor' somewhere */
if(status == 'disabled-link') {
var anchors = document.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
anchors[i].onclick = function(e) {e.preventDefault();};
};
}
}, 400);
</script>
</html>
推荐阅读
- sql - TDengine 算术查询操作导致使用非数字操作数的核心转储
- python - 将正在进行的 Python 控制台输出重定向到文件
- reactjs - 我的消息消失了 我收到一条新消息或发送消息
- git - Flutter升级:ProcessException:进程异常退出
- html - 如何摆脱移动设备上烦人的 y 移动和滚动条?
- java - 一个外键用于相同类型的多个关系休眠
- vscode-extensions - 单击查看容器后执行操作
- python - Python unittest - 在同一测试中显示所有 AssertionError
- geometry - 具有最小平均绝对偏差的凸抛物线支持点?
- firebase - jetified-protobuf-javalite-3.14.0 com.google.protobuf:protobuf-javalite:3.14.0) jetified-protobuf-lite-3.0.1 (com.google.protobuf:protobuf-lite:3.0.1