我想仅向外部链接(重定向到外部网站的链接)添加一个参数。这是我到目前为止所做的: <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>
添加回答
举报
0/150
提交
取消