为了账号安全,请及时绑定邮箱和手机立即绑定

仅向外部链接添加参数

仅向外部链接添加参数

扬帆大鱼 2022-11-03 10:18:53
我想仅向外部链接(重定向到外部网站的链接)添加一个参数。这是我到目前为止所做的:      <script type="text/javascript">//<![CDATA[        jQuery('document').ready(function(){          jQuery( 'a' ).each( function( index, element ){            var url = jQuery( element ).prop( 'href' );                        if (url.host !== window.location.host){              if ( url.indexOf( '?' ) == -1 ) {                url += '?ref=xxx';              } else {                url += '&ref=xxx';              }              jQuery( element ).prop( 'href', url );            }          } );        });      </script>但是,这将添加ref=xxx到所有链接(内部和外部)。我在这里错过了什么吗?
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

url不包含.host属性;返回一个href .prop()字符串。

要访问主机名,您需要将每个 URL 转换为带有new URL().

请注意,您还必须更新.indexOf()to 指向url.host.indexOf()

jQuery('document').ready(function() {

  jQuery('a').each(function(index, element) {

    var url = new URL(jQuery(element).prop('href'));


    if (url.host !== window.location.host) {

      if (url.host.indexOf('?') == -1) {

        url += '?ref=xxx';

      } else {

        url += '&ref=xxx';

      }


      jQuery(element).prop('href', url);

    }

  });

});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<a href="/test.html">Internal</a>

<a href="https://www.google.com">External</a>


查看完整回答
反对 回复 2022-11-03
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信