2014-01-26 2 views
0

У меня есть ссылка как этотКак предотвратить идентификаторы фрагментов из показа в URL

<a href="#login_form">Log in</a> 

после нажатия на ссылку изменения URL-адреса из

http:/domain.com 

в

http://domain.com#login_form 

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

Форма входа - это что-то вроде этого.

<a href="#x" class="overlay" id="login_form"></a> 
    <div class="box"> 
    <h2>LOG IN</h2> 
    <form name="login" action="" method="post"> 
    </form> 
    </div> 

OK. ЗДЕСЬ JS FIDDLE. ПОЖАЛУЙСТА, ПРОВЕРЬТЕ.

http://jsfiddle.net/vq24P/1/

+0

Покажите нам свой текущий яваскрипта код. –

+0

№. не может изменить значение href. он должен быть таким же. –

+0

@RahilWazir Я не использовал для этого java-скрипт. –

ответ

2

Это называется фрагмент документа, а не хэш-тег, но whatevs.

Если, как вы говорите, «никакой скрипт java [используется] для отображения формы входа в систему», я могу предположить, что вы используете CSS-код :target для переключения видимости? В этом случае вы ничего не можете сделать. Фрагмент ДОЛЖЕН быть в URL-адресе для отображения этого элемента.

Вместо этого используйте JavaScript, чтобы сделать переключение для вас. Что-то вроде:

<a href="javascript:void(document.getElementById('login_form').style.display = 'block');">Log in</a> 

(ВНИМАНИЕ: Очень плохой пример, но он должен получить общее представление о том, работающий)

Вам нужно будет использовать id="login" вместо name="login"

+0

Я отредактировал с помощью jsfiddle .. plz check. –

+0

'.overlay: target' был тем, о чем я говорю. Для этого не существует * способа *, чтобы он не отображался в URL-адресе. –

+0

не может быть удален из URL-адреса после появления java-скрипта? –