我如何修改这个javascript来忽略查询字符串中的任何数据

How can I modify this javascript to ignore any data within a query string?

本文关键字:查询 字符串 数据 任何 javascript 何修改 修改      更新时间:2023-09-26

基本上,我有这个网站,其内容根据用户输入的查询字符串而变化。

当用户输入mysite.com/?1时,它加载1和/?2 for 2

我的问题是,我有一个Facebook喜欢按钮在我的页面,并使其工作,我已经写了这个js代码:

<script type="text/javascript">
    var sUrl = window.location;
    document.getElementById('fbcom').setAttribute('href', sUrl);
</script>

获取url,并允许用户喜欢不同的内容,从技术上讲,这是一个文件。

我的问题是,当用户喜欢例如/?在facebook上,如果有人在他们的信息流中点击了这个链接,并决定他们也喜欢它,从技术上讲,他们会喜欢这个页面/?1-与所有额外的facebook代码在url的末尾,所以返回/?1 . like未注册。

我如何修改上面的代码忽略任何facebook垃圾在url的结束时,他们从facebook定向?

重要提示:ID/?1可以是1位数到4位数的任何数字,例如/?1234我现在的JS能力很差。由于

您可以将您实际想要保留的location的属性组合起来-似乎是protocol, hostpathname:

var sLoc = window.location;
var sUrl = sLoc.protocol + '//' + sLoc.host + sLoc.pathname;

您也可以使用pathname作为相对于根:

var sUrl = window.location.pathname;

你可以使用regex:

var sUrl = window.location.toString().replace(/^(.*?)('?.*)?$/, '$1');