对比前端和后端方案给WordPress文章链接在新窗口打开

本文介绍了两种实现外部链接在新窗口打开的方法:前端使用jQuery遍历页面链接,通过域名比较识别外部链接并添加target和rel属性;后端使用PHP正则匹配内容中的链接,解析域名后为外部链接添加相应属性。两种方案均能有效处理外部链接跳转并增强安全性。

使用微信扫码登录 赞助我一杯咖啡

欢迎来到好嘢科技

我们是一家专注于数字化解决方案的技术团队,致力于为中小企业提供高效、可靠的网站建设、SEO优化和电商系统开发服务。我们的使命是通过技术赋能,让每一个客户都能在互联网时代中脱颖而出。

无论您是刚起步的创业者,还是希望升级现有平台的企业主,我们都能为您量身定制最合适的方案。欢迎联系我们,开启您的数字化旅程。

前端JS方法,

遍历所有连接,给连接添加属性,让它在新窗口打开。

jQuery(document).ready(function($) {
        // 获取当前域名
        var currentDomain = window.location.hostname;
        
        // 选择所有链接
        $('a').each(function() {
            var href = $(this).attr('href');
            
            // 确保链接存在且不是空链接、锚点链接或javascript链接
            if (href && href !== '#' && !href.startsWith('javascript:') && !href.startsWith('tel:') && !href.startsWith('mailto:')) {
                try {
                    // 尝试创建URL对象来解析链接
                    var url = new URL(href, window.location.href);
                    
                    // 检查链接是否为外部链接(不包含当前域名)
                    if (url.hostname !== currentDomain && url.hostname !== '') {
                        // 为外部链接添加target和rel属性
                        $(this).attr('target', '_blank');
                        $(this).attr('rel', 'noopener noreferrer');
                    }
                } catch(e) {
                    // 如果URL解析失败(可能是相对路径),则忽略
                    console.log('URL解析失败:', href);
                }
            }
        });
    });
    </script>
  • 域名检测:获取当前网站的域名
  • 链接遍历:使用jQuery遍历页面上的所有<a>标签
  • 链接过滤:排除以下类型的链接:
    • 空链接或#锚点链接
    • javascript:协议链接
    • tel:电话链接
    • mailto:邮件链接
  • 外部链接判断
    • 使用URL对象解析链接
    • 比较链接域名与当前网站域名
    • 如果域名不同,则认为是外部链接
  • 属性设置:为外部链接添加:
    • target="_blank":在新窗口打开
    • rel="noopener noreferrer":增强安全性,防止新窗口访问原窗口

🔒 付费内容

支付 0.1元 即可查看完整内容

正在加载二维码...

📱 请使用微信扫描二维码完成支付
支付成功后页面将自动刷新

⏳ 等待支付中...

订单号:WX202510212059122550

Last Updated:

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部