0

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

当用户输入 mysite.com/?1 时,它会为 1 加载内容,为 2 加载 /?2

我的问题是我的页面中有一个类似 Facebook 的按钮,为了使其正常工作,我编写了以下 js 代码:

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

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

我的问题是,当用户在 facebook 上喜欢例如 /?1 时,如果有人在他们的新闻源上单击此链接并决定他们也喜欢它,从技术上讲,他们会喜欢页面 /?1 - 以及所有额外的 facebook url 末尾的代码,因此返回 /?1 之类的尚未注册。

当它们从 facebook 定向时,如何修改上述代码以忽略 url 末尾的任何 facebook 垃圾?

重要提示:ID /?1 可以是从 1 位到 4 位的任何数字,例如 /?1234 我目前的 JS 能力很差。谢谢

4

2 回答 2

2

您可以组合您实际想要保留的属性locationprotocol- 这似乎是,hostpathname

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

您也可以只使用pathnameas relative-from-root

var sUrl = window.location.pathname;
于 2013-04-15T21:10:27.337 回答
1

你可以用正则表达式做到这一点:

var sUrl = window.location.toString().replace(/^(.*?)(\?.*)?$/, '$1');
于 2013-04-15T21:07:38.180 回答