【问题标题】:How to load all href links in a separate window如何在单独的窗口中加载所有 href 链接
【发布时间】:2013-03-04 01:33:33
【问题描述】:

我正在加载从电子邮件解析到框架的 HTML 内容。如果电子邮件包含 href 链接,它会尝试在其框架中打开该链接,但我想让它在新选项卡中打开。

通常,我会通过在 href 中将目标设置为 _blank 来做到这一点,但 href 标记是直接从 EML 文件中读取的,所以除非有更好的方法,否则这似乎是我能完成的唯一方法这是为了解析正在读取的 HTML 标记,找到所有 href 链接并将目标添加到其中。如果可能的话,我想避免使用这个选项,因为解析 html 通常会给性能带来很多不利影响。

如果有人知道实现此目的的优雅方法,请告诉我。

【问题讨论】:

    标签: javascript html email asp-classic frame


    【解决方案1】:

    这不是很优雅或语义化,但作为一种快速而肮脏的解决方案,您可以在第一个链接之前打印一个基本标签:

    <base target="_blank">
    

    请参阅http://www.w3schools.com/tags/att_base_target.asp 了解更多信息。

    【讨论】:

    • 这是解决此问题的最简单方法。喜欢它。
    • 纯真棒。 +99999999 如果可以的话。
    • 考虑到base element 必须在头部,A 元素必须在正文中,可以肯定的是它会在第一个链接之前。 ;-)
    • @RobG 是的,但除了推荐之外,浏览器还支持正文中的基本标签,甚至网站不同部分的多个标签。
    • 框架后的链接不会也加载到新窗口吗?
    【解决方案2】:

    如果你使用的是 jQuery...

    $('#frame a').click(function(event) {
      event.preventDefault();
      window.open($(this).attr('href'), '_blank');
    });
    

    【讨论】:

    • 而不是this.href,打字更少,效率更高。
    猜你喜欢
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2022-07-20
    • 2013-03-20
    相关资源
    最近更新 更多