我可以从Elementor中的视频播放列表生成的URL中删除参数吗



Elementor Pro有了一个新的小部件,视频播放列表。它将一个参数附加到URL中,如下所示:http://aaronpenton.net/ampcreative/vip/about-vip/?playlist=f68425e&视频=b8a9967

这对SEO和用户体验来说显然很糟糕。有办法移除吗?播放列表=f68425e&video=b8a9967?

我哥哥帮我写下一个脚本。将一个";HTML元素或小部件";具有以下内容:

<script>
function getURLParameter(name) {
return decodeURI((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]);
}
function hideURLParams() {
//Parameters to hide (ie ?playlist=value, ?video=value, etc)
var hide = ['playlist','video'];
for(var h in hide) {
if(getURLParameter(h)) {
history.replaceState(null, document.getElementsByTagName("title")[0].innerHTML, window.location.pathname);
}
}
}
window.onload = hideURLParams;
</script>

这样就可以了。

const url = 'http://aaronpenton.net/ampcreative/vip/about-vip/?playlist=f68425e&video=b8a9967'
url.replace(url.split('/')[6], '')
  1. split,嗯。。通过/将字符串拆分为数组性格

  2. 在索引6处,数组包含?playlist=f68425e&video=b8a9967子串,该子串可以使用replace移除(即用空串代替(。

删除url最后一部分的更通用方法可能使用数组长度而不是指定索引:

const url = 'http://aaronpenton.net/ampcreative/vip/about-vip/?playlist=f68425e&video=b8a9967'
const urlArr = url.split('/')
url.replace(urlArr[urlArr.length - 1], '')

更新:

另一种方法是使用URL API

const url = new URL('http://aaronpenton.net/ampcreative/vip/about-vip/?playlist=f68425e&video=b8a9967');
const result = url.origin + url.pathname

或者在一个函数中:

const removeParameter = u => {
const url = new URL(u);
return url.origin + url.pathname
}

您可能需要查看规范以了解更多详细信息(浏览器支持等(

相关内容

  • 没有找到相关文章

最新更新