超链接的禁用属性 disabled

本文详细解释了如何使用JavaScript约束超链接禁用属性,并提供了微软给出的解决方案来解决HTML中超链接禁用属性的bug。通过全局变量和按钮单击事件,实现了禁用超链接的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以设置超链接的Disabled属性的true 和 false来确定超链接是不是能点击 

例如: 
<a herf=' http://www.baidu.com ' οnclick='return click(this);' disabled='ture'>bai du</a> 

上面的意思是不想让bai du的超链生效,但在click不做任何约束和判断的话,但点击bai du的时候自然就会跳转到百度页面,这就是html中超链接禁用属性的bug 
可以添加下面js约束来判断超链接是否可以使用 
    <script language='javascript'> 
      function click(obj) 
      { 
        if(obj.disabled) 
        { 
            return false; 
        } 
        return ture; 
      } 
    </script> 

下面的微软给出的bug解决方案: 
借助了全局变量,使用别的按钮来改变disabled的属性,来得到禁用属性的效果.; 

BUG: DISABLED 属性不在禁用超链接 
尽管 DISABLED 属性设置为 True 一个超链接为在以下, 
<a DISABLED="true" href=" http://www.microsoft.com/ ">Where do you want to go today?</a> 
用户仍可以单击超链接,然后 Internet Explorer 导航到所选页。 

若要解决此问题,设置返回 true 或 false 根据当前的执行上下文的超链接的 onclick 事件。 在下面的代码将全局的 Microsoft JScript 变量的值设置为 true 或 false ,根据按钮单击中。 目标超链接对象的 DISABLED 属性被更新,以便它能够正确通信其禁用的状态,其他对象并编写脚本页上的功能。 
<html> 
<head> 
<title>Workaround for DISABLED Attribute Problem</title> 
<SCRIPT> 
var canNav = false; 
function canNavigate() { 
return canNav; 

function load() { 
document.all("btn1").innerText = "Link status == " + canNav; 


function setNavigate(linkObj, canNavParam) { 
if (linkObj != null) { 
if (canNavParam == false) { 
linkObj.disabled = true; 
} else { 
linkObj.disabled = false; 

canNav = canNavParam; 



function updateBtnStatus(btnName) { 
var btn = document.all(btnName); 
if (btn != null) { 
document.all(btnName).innerText = "Link status == " + canNav; 


</SCRIPT> 

</head> 
<body οnlοad="load();"> 
<a id="lnk1" disabled=true href=" http://www.microsoft.com/ " οnclick="return canNavigate();">Click  here</a><p> 
<button id=btn1 οnclick="setNavigate(document.all('lnk1'), !(canNav));updateBtnStatus('btn1');"> 
</button> 
</body> 
</html> 
参考文献: http://support.microsoft.com/kb/253579/zh-cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值