【发布时间】:2013-06-22 14:11:02
【问题描述】:
我发现了一些非常棒的链接检测正则表达式,效果非常好。它只取链接的主要部分并将其显示为锚标记的主体,并将整个链接显示为 href。例如http://somesite.com/index.php?some=var 看起来就像somesite.com。这只是纯粹的令人敬畏,但它也有它的缺点,因为有人可能会传递一些你可能出于某种原因不一定想要发送的变量,我认为我需要在锚正文中显示整个 url。可悲的是,我不想放弃漂亮的主播,我决定我应该在某些事件上显示完整链接,因此麻烦来了。
首先我想我应该使用鼠标悬停(jquery 的 mouseenter)来显示完整的链接,然后使用 mouseleave 让它再次美观。不幸的是,由于在一行末尾带有一堆参数的站点名称很短,因此没有成功。示例:如果在一行的末尾有一个带有 body site.com 和 href http://site.com/some/params 的锚点,扩展后它将转到下一行,这将触发鼠标离开并压缩它,它会自行返回链接到原始行并触发 expand 函数创建一个无限循环。
第二个想法是右键单击展开链接。显然,必须禁用要扩展的链接上的上下文菜单。不幸的是,在一行的末尾有相同的链接会导致显示上下文菜单,因为在展开后右键单击也会在短链接所在的空白处触发。
我的想法似乎已经用完了,有人有吗?
【问题讨论】:
-
悬停时在状态栏中显示完整链接是不够的(我使用的所有浏览器的标准行为)。
-
我会这样做,隐藏
http://www.并让其余部分可见。没有可用性问题,也不需要 JS。 -
@nnnnnn 有些用户甚至不知道那是什么,而且他们不在少数。我想扩展链接对这些用户也无关紧要,但是哦……如果我需要一个借口,这是一个好主意,但没想到这一点,谢谢! :P
-
@FabrícioMatté 有很多网站不使用 seo 友好的 url,我不想在最后显示这些参数:s
-
嗯,正如你所说,有些用户甚至不知道状态栏,所以扩展链接对他们来说可能会更糟糕。
:P我想过一些 CSS 黑客。这将防止链接包装jsfiddle.net/yp7hr/1,但您的布局会损坏。最好放置一个显示完整 URL 的工具提示(作为本机title属性),以免破坏布局。
标签: javascript jquery html hyperlink tags