Как я могу изменить этот 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;