如何在本地HTA文件中点击超链接时获取其相对路径
解决HTA中点击链接获取相对路径且不跳转的问题
嘿,你之前的代码之所以拿到绝对路径,是因为element.href会被IE(HTA基于IE内核)自动解析成完整的绝对URL,而你要的是写在HTML里的原始相对路径对吧?其实换个方式就能搞定,直接用getAttribute('href')获取原始值,再阻止默认跳转行为就好啦!
下面是修改后的test.hta示例:
<!DOCTYPE html> <html> <head> <meta http-equiv="x-ua-compatible" content="ie=9.0" /> <meta charset="utf-8"> </head> <body> <a href="/href1">Link1</a> <a href="/href2">Link2</a> <script> var pageLinks = document.querySelectorAll('a'); for(var i = 0; i < pageLinks.length; i++) { pageLinks[i].onclick = function(event) { // 阻止默认跳转行为 event.preventDefault(); // 获取原始的相对路径 var relativeHref = this.getAttribute('href'); // 这里可以换成你需要的处理逻辑,比如弹出路径 alert(relativeHref); } } </script> </body> </html>
关键点说明:
getAttribute('href'):直接读取你在HTML里写的原始href值,不会被浏览器解析为绝对路径,完美拿到/href1、/href2这类相对路径event.preventDefault():阻止链接的默认跳转行为,点击后不会跳转到目标地址,完全符合你的需求- 不需要修改原链接的
href属性,保持HTML结构的干净
现在点击任意链接,就能弹出你想要的相对路径啦!
内容的提问来源于stack exchange,提问作者stckvrw
相关产品推荐
相关产品推荐

