2009-10-02 4 views
28

Я знаю, что для ссылок есть много трюков, например <a href="?query=string"> будет ссылаться на текущую страницу после добавления строки запроса. Есть ли способ связать ссылки на текущую страницу после удаления строки запроса без ввода имени файла?Ссылка на текущую страницу без строки запроса

Пример: на странице foo.php?q=3, я хочу ссылку на foo.php. Есть ли способ быстрого доступа к этому? Файл будет переименован несколько раз, поэтому я не хочу набирать связку ссылок, а затем их редактировать позже.

Редактировать: Несмотря на то, что это файлы PHP, я пытаюсь избежать решения на стороне сервера для этой конкретной проблемы.

+0

p.s. любому, кто думает о якорях ... По-видимому, сообщество не любит их настолько сильно, что любой, разместивший их в качестве решения, будет опущен в пропасть угловых скобок. – BozoJoe

ответ

48
href="?" 

Не точно, что вы после - есть еще знак вопроса в конце - но функционально эквивалентны.

+1

Хотя это и старо, я поддерживаю и комментирую, так как это все еще актуально , и это единственный способ, не связанный с сервером (это я могу сказать), который работает как с URL-адресами, так и с расширением. – trnelson

2

Требуется ли клиентская эквивалент $_SERVER['PHP_SELF']? Что-то, что всегда будет ссылаться на файл без дополнительных материалов после расширения?

Я не уверен, если это работает во всех браузерах, но он прекрасно работает в Firefox 3.5:

<a href="">Foo</a> 
+0

Он не очищает существующую строку запроса. –

+0

+1 Как $ _SERVER ['PHP_SELF'] на самом деле было нужным мне решением. – ajcw

+1

'Foo' К сожалению, это не работает в IE. От: http://msdn.microsoft.com/en-us/library/cc848861%28v=vs.85%29.aspx - _ Если HREF указывается как пустое значение (href = "" или href =), выполнение ссылки может отображать каталог, содержащий текущий документ, или может генерировать ошибку, в зависимости от других элементов документа и среды сервера. –

-1

Вы можете ссылку на текущей странице вы находитесь с:

<a href="#">blah</a> 
+5

Это не выполняет новый запрос на сервер во всех браузерах. –

+2

Я не думаю, что он выполняет новый запрос в любом браузере. – JJJ

14

Вы можете использовать <a href=".">, чтобы перезагрузить текущую страницу, удалив строку запроса.

Для получения более подробного ответа см. this.

+3

Это не работает в IE 11, но? делает. – Mint

+1

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

Смежные вопросы