JS中的扩展实现弹窗超链接

HTML

<div id="test-external">
    <p>如何学习<a href="http://jquery.com">jQuery</a></p>
    <p>首先,你要学习<a href="/wiki/1022910821149312">JavaScript</a>,并了解基本的<a href="https://developer.mozilla.org/en-US/docs/Web/HTML">HTML</a></p>
</div>

JS引用

$('#test-external a').external();

JS函数构造

$.fn.external = function () {
    return this.filter('a').each(function () {
        var a = $(this);
        var url = a.attr('href');
        if (url && (url.indexOf('http://')===0 || url.indexOf('https://')===0)) {
            a.attr('href', '#0')
             .removeAttr('target')
             .append(' <i class="uk-icon-external-link"></i>')
             .click(function () {
                if(confirm('你确定要前往' + url + '?')) {
                    window.open(url);
                }
            });
        }
    });
}

函数解析:

  1. filter(‘a’) HTML源码->
<a href="http://jquery.com">jQuery</a>
<a href="/wiki/1022910821149312">JavaScript</a>
<a href="https://developer.mozilla.org/en-US/docs/Web/HTML">HTML</a>
  1. url = a.attr(‘href’) url=
 http://jquery.com 
 /wiki/1022910821149312 
 https://developer.mozilla.org/en-US/docs/Web/HTML
  1. 条件判断,只有链接1和链接3能够通过
  2. a.attr(‘href’, ‘#0’) a->
<a href="#0">jQuery</a>
<a href="#0">JavaScript</a>
<a href="#0">HTML</a>

这里解释一下,#0是为了组织点击字体跳转,毕竟目的是通过弹窗跳转。

  1. removeAttr(‘target’) a->去除target,因为target="_blank"会新开一个浏览器空白窗口,虽然我的HTML代码中没设target。
  2. .append(’ ') 链接文字后增加提示图标。
  3. confirm弹窗提示,跳转。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值