分享一段通过前端javascript脚本 启用/禁用超链接的代码
在做asp.net开发的时候,可能会经常用LinkButton,该控件最终会在客户端解析成超链接;
有的时候可能期望直接在客户端控制 该类button(即hyperlink)的可用与非可用。
一般我们会在客户端这样写:
< a href="javascript: doSomething()" class="button" id="abc">审核</ a > 或者 < a href="#" onclick="doSomething(); return false;" class="button" id="xyz">审核</ a > |
在ie里面可以直接设置超链接的disabled属性为true,但是有两个问题:
1)disabled属性只有ie支持,其它浏览器(如firefox、Opera等)未必支持;
2)即使将disabled属性设置为true以后,在单击该超链接的似乎后,onclick事件仍然会执行;
因此出现了下面变通的方法,经试验,浏览器兼容性比较好,提供点小技巧供参考:
// 禁用、启用超链接
// @objId : 超链接ID
// @disable: true,禁用; false:启用
function disableAnchor(objId, disable) {
var obj = gId(objId);
if (disable) { // disable
var href = obj.getAttribute("href");
if (href && href != "" && href != null) {
obj.setAttribute('href_bak', href);
}
obj.removeAttribute('href');
// 处理onclick事件
var onclick = obj.getAttribute("onclick");
if(onclick != null){
obj.setAttribute('onclick_bak', onclick);
obj.setAttribute('onclick', "void(0);");
}
obj.onclick = null;
obj.style.color = "gray";
obj.setAttribute('disabled', 'disabled');
}
else { // enable
if (obj.attributes['href_bak'])
obj.setAttribute('href', obj.attributes['href_bak'].nodeValue);
if(obj.attributes['onclick_bak']!=null)
obj.setAttribute('onclick', obj.attributes['onclick_bak'].nodeValue);
obj.removeAttribute('style');
obj.removeAttribute('disabled');
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?