Как я могу изменить этот JavaScript, чтобы игнорировать любые данные в строке запроса?

По сути, у меня есть этот веб-сайт, содержание которого меняется в зависимости от того, что пользователь вводит в строку запроса.

Когда пользователь вводит mysite.com/?1, он загружает контент для 1 и /?2 для 2

Моя проблема в том, что на моей странице есть кнопка "Мне нравится в Facebook", и чтобы она заработала, я написал этот код js:

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

это получает URL-адрес и позволяет пользователю любить содержимое, отличное от того, что технически является одним файлом.

Моя проблема в том, что когда пользователю нравится, например, /? 1 на Facebook, если кто-то, кто щелкнет по этой ссылке в своей ленте новостей и решит, что ему тоже нравится, технически ему понравится страница /?1- со всеми дополнительными Facebook код в конце URL, поэтому, возвращаясь к /? 1, подобное не зарегистрировано.

Как я могу изменить приведенный выше код, чтобы игнорировать мусор Facebook в конце URL-адреса, когда он направляется с Facebook?

Важно: ID /?1 может быть любым от 1 до 4 цифр, например, /?1234 Моя текущая способность JS очень плохая. Спасибо

2 ответа

Решение

Вы можете сделать это с помощью регулярных выражений:

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

Вы можете комбинировать свойстваlocation Вы действительно хотите сохранить - что, кажется, protocol, host, а также pathname:

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

Вы также можете просто использовать pathname как относительное от корня:

var sUrl = window.location.pathname;
Другие вопросы по тегам