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], '')
split
,嗯。。通过/
将字符串拆分为数组性格在索引
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
}
您可能需要查看规范以了解更多详细信息(浏览器支持等(