锚点标签显示完整链接问题
Anchor tag display full link issue
我发现了一些非常棒的链接检测正则表达式,它的工作效果令人难以置信。它只获取链接的主要部分,并将其显示为锚点标记的主体,将整个链接显示为href。在示例中,http://somesite.com/index.php?some=var
将简单地看起来像somesite.com
。这纯粹是令人敬畏的,但话说回来,它也有缺点,因为有人可能会传递一些变量,而你可能出于某种原因不一定想发送这些变量,我想我需要在锚主体中显示整个url。遗憾的是,我不想放弃漂亮的主播,我决定在某个活动中显示完整的链接,因此遇到了麻烦。
首先,我想我应该使用鼠标悬停(jquery的mouseenter)来显示完整的链接,然后使用mouseleave使其再次美观。不幸的是,由于一行末尾有一堆参数,站点名称很短,所以没有成功。示例:如果在一行的末尾有一个锚,其正文为site.com
,href为http://site.com/some/params
,则在展开后,它将转到下一行,这将触发鼠标离开,从而压缩它,这将自动将链接返回到原始行,并触发展开函数,创建一个无限循环。
第二个想法是用鼠标右键展开链接。显然,必须禁用要展开的链接上的上下文菜单。不幸的是,在一行的末尾有相同的链接会导致出现上下文菜单,因为在展开后,右键单击也会在短链接所在的空白处触发。
我好像没什么主意了,有人有吗?
在不破坏布局的情况下,您可以使用本机title
属性来显示完整的URL,或者使用插件(如jQuery UI的工具提示小部件)来进行更自定义的操作。
<a href="http://www.shorturl.com/?param=notSoShortUrl"
title="http://www.shorturl.com/?param=notSoShortUrl">shorturl.com</a>
如果在初始标记中输出title
属性,则此解决方案即使在禁用JS的情况下也能工作。如果您愿意,jQuery UI工具提示可能有助于为支持JS的用户自定义它。
如果有人对如何修补OP中描述的断线问题感兴趣,这里是我实现非断线可扩展链接的原始解决方案:
<a href="http://www.aaaaaaaaaaaaaaaaaa.com/?params=somelongstring">aaaaaaaaaaaaaaaaaa.com</a>
$('a').hover(function(e) {
$(this).text(e.type == 'mouseenter' ? this.href : $(this).data('shorturl'));
}).each(function() {
$(this).css({
width: this.offsetWidth,
whiteSpace: 'nowrap',
display: 'inline-block'
}).data('shorturl', $(this).text());
});
演示
不过,这主要是一次CSS破解,链接文本可能会泄漏到容器之外(显然,如果容器有overflow:hidden
,就不起作用),因此它不太适合布局。最好使用title
或工具提示插件。
- 链接问题:下一个字符包含在<a>TinyMce ui TinyMce中的标签
- jquery对话框可见时自动下载链接问题
- 多个脚本导致链接问题?Javascript、CSS、HTML、Jquery
- 转.js目录链接问题
- 航点JS和锚链接问题
- 灯箱外部链接问题
- 字体在Safari上出现了很棒的链接问题,适用于Chrome和Firefox
- Jquerymobile面板链接问题
- IOS上ionic应用程序中的外部链接问题
- html页面中出现奇怪的链接问题
- Jquery UI选项卡直接链接问题
- javascript中的链接问题
- Javascript React单页应用程序+亚马逊S3:永久链接问题
- 锚点标签显示完整链接问题
- Angularjs在html5Mode中的链接问题
- Facebook发送对话框链接问题
- Chrome和Firefox中的nicEditor链接问题
- jQuery延迟了链接问题
- Html / Css链接问题
- Cheerio Node.JS外部标题链接问题