Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.02.2010, 00:07
Аватар для mff
mff mff вне форума
Аспирант
Отправить личное сообщение для mff Посмотреть профиль Найти все сообщения от mff
 
Регистрация: 28.01.2010
Сообщений: 31

При нажатии на ссылку браузер запоминает как переход на др страничку
Подскажите пожалуйста, написал простенькую голосовалку, всё хорошо, но вот когда нажимаешь на ссылку, браузеры запоминают это действие как переход на другую страничку, и потом можно нажать на кнопку "Назад" в браузере и ничего не произойдёт, потому что перезагрузки не было. Подскажите, как запретить историю переходов для этой ссылки?

<!--
var x="";
function process(x)
{
var xmlhttp;
if (window.XMLHttpRequest)
  {
  // для IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  // для IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
  {
document.getElementById("ratt").innerHTML=xmlhttp.responseText;
  }
}
 xmlhttp.open("GET", "rating.php?ch=<?php echo $ch; ?>&lang=ru&name=" + x, true);
xmlhttp.send(null);
}

<a href="#nul" onclick="process('yes')" title="Да"><img id="yes" src="img/yes.gif"  width="19" height="19" alt="Да" align="absmiddle" style="margin-right:10px;" /></a>
Ответить с цитированием
  #2 (permalink)  
Старый 17.02.2010, 00:39
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

// ...
    xmlhttp.send(null);
    return false
}
Ответить с цитированием
  #3 (permalink)  
Старый 17.02.2010, 01:42
Аватар для mff
mff mff вне форума
Аспирант
Отправить личное сообщение для mff Посмотреть профиль Найти все сообщения от mff
 
Регистрация: 28.01.2010
Сообщений: 31

e1f, спасибо, но не помогло
Ответить с цитированием
  #4 (permalink)  
Старый 17.02.2010, 02:08
Аватар для mff
mff mff вне форума
Аспирант
Отправить личное сообщение для mff Посмотреть профиль Найти все сообщения от mff
 
Регистрация: 28.01.2010
Сообщений: 31

Заменил <a href="#nul" на <a href="javascript: void();" и всё заработало. Но насколько это грамотно будет?
Ответить с цитированием
  #5 (permalink)  
Старый 17.02.2010, 02:46
Интересующийся
Отправить личное сообщение для Michael83 Посмотреть профиль Найти все сообщения от Michael83
 
Регистрация: 05.01.2010
Сообщений: 28

можешь вот так сделать
onclick="process('yes'); return false"

или как выше советовали, но тогда
onclick="return process('yes')"
Ответить с цитированием
  #6 (permalink)  
Старый 17.02.2010, 08:59
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от mff
Но насколько это грамотно будет?
Грамотно вообще не использовать ссылки там, где не будет перехода.
Ответить с цитированием
  #7 (permalink)  
Старый 17.02.2010, 13:21
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

Сообщение от Kolyaj Посмотреть сообщение
Грамотно вообще не использовать ссылки там, где не будет перехода.
+1
Сообщение от mff Посмотреть сообщение
Но насколько это грамотно будет?
тынць
__________________
"Helo, word!" - 17 errors 56 warnings
Ответить с цитированием
  #8 (permalink)  
Старый 17.02.2010, 15:22
Аватар для mff
mff mff вне форума
Аспирант
Отправить личное сообщение для mff Посмотреть профиль Найти все сообщения от mff
 
Регистрация: 28.01.2010
Сообщений: 31

Сообщение от Kolyaj Посмотреть сообщение
Грамотно вообще не использовать ссылки там, где не будет перехода.
Kolyaj, как же быть? Использовать кнопки?
Ответить с цитированием
  #9 (permalink)  
Старый 17.02.2010, 15:28
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от mff
как же быть?
<span style="text-decoration: underline; cursor: pointer;" onclick="alert(1)">click</span>
например.
Ответить с цитированием
  #10 (permalink)  
Старый 17.02.2010, 16:33
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Kolyaj,
не согласен. Формально это все-таки текстовый якорь. Ну а насчет «легитимности» ссылки, которая никуда не ведет… Пользователь привык, что ссылка — это место, по которому нужно кликнуть, и что-то произойдет. Кстати, для того, чтобы разделять обычные и яваскриптовые ссылки, у последних делают подчеркивание пунктирное.

Ну, а если для яваскриптовых ссылок использовать отдельный класс, все будет намного проще:
<style>
	a.js-link {
		text-decoration: none;
		border-bottom: dashed 1px;
	}
</style>
<script type="text/javascript">
	anchorWatcher = function(e){
		if (!e){
			e = window.event
		};
		var trigger = e.srcElement || e.target;
		while (trigger){
			if (trigger.tagName && trigger.tagName.toLowerCase() == "a") break;
			trigger = trigger.parentNode;
		};
		if (!trigger) return;
		if (/(^|\s)js-link(\s|$)/.test(trigger.className)){
			if (e.preventDefault) e.preventDefault();
			if (e.returnValue) e.returnValue = false;
		};
	}
	if (document.addEventListener){
		document.addEventListener('click', anchorWatcher, false);
	} else if (document.attachEvent){
		document.attachEvent('onclick', anchorWatcher);
	} else {
		document.onclick = anchorWatcher;
	};
</script>

<p><a href="#">Я обычная ссылка</a></p>
<p><a href="#" class="js-link">А я ссылка яваскриптовая</a></p>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие сразу нескольких див-ов при нажатии на ссылку. Как? Jameson Элементы интерфейса 4 15.02.2010 22:03
Как очистить textarea при нажатии на него soniclord Общие вопросы Javascript 12 11.01.2010 08:12
смена div при нажатии на ссылку bars Элементы интерфейса 11 23.10.2009 12:45
Событие при нажатии на ССЫЛКУ Ivanishin Events/DOM/Window 11 16.06.2009 01:43
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 07:55