Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как записать адрес ссылки в переменную? (https://javascript.ru/forum/dom-window/51806-kak-zapisat-adres-ssylki-v-peremennuyu.html)

SV4 20.11.2014 14:42

Как записать адрес ссылки в переменную?
 
Как можно сделать так, что бы при нажатии на ссылку ее адрес записывался в переменную, но переход по самой ссылке не происходил.

Erolast 20.11.2014 15:05

<script>
var lastPressedLinkHref;
</script>
<a href="http://javascript.ru" onclick="lastPressedLinkHref = this.href; return false;">javascript.ru</a>

krutoy 20.11.2014 15:39

<!DOCTYPE HTML>
<html>
    <head>
    </head>

    <body>
<a href="foo">foo</a>
<a href="bar">bar</a>
<a href="baz">baz</a>
<button onclick="show()">show</button>
<script>

chng=function(){
   window.last=this.href; return false
}
show=function(){
   alert(last)
}

links=document.getElementsByTagName("a")
for(i in links) {if(!/\d+/.test(i)) break; links[i].onclick=chng}

</script>
    </body>
</html>

danik.js 20.11.2014 16:39

krutoy, а зачем ты засираешь методы NodeList непонятными свойствами?
Пиздец, у тя руки из жопы ))

krutoy 20.11.2014 17:02

danik.js,
исправил. Вставил for(i in links) {if(!/\d+/.test(i)) break; links[i].onclick=chng}
Кстати, вопрос: а есть ли гарантия, что первыми полями в объекте nodeList всегда идут ноды? Не может ли быть, что какой-нибудь метод вклинится прямо между нодами?

Erolast 20.11.2014 17:11

Цитата:

Кстати, вопрос: а есть ли гарантия, что первыми полями в объекте nodeList всегда идут ноды?
Нет. Спецификация не определяет порядка перебора свойств по for in.
Цитата:

Пиздец, у тя руки из жопы ))
Для него это еще комплимент.

krutoy 20.11.2014 17:33

Цитата:

Сообщение от Erolast
Спецификация не определяет порядка перебора свойств по for in.

Я спрашиваю не про порядок перебора, ибо, если бы у тебя были зачатки мозга, такого вопроса бы в принципе не возникло. Я спрашиваю,
Цитата:

Сообщение от krutoy
есть ли гарантия, что первыми полями в объекте nodeList всегда идут ноды?


SV4 20.11.2014 18:43

А вот если нажать на ссылку, открывается новое окно.
Можно ли перехватить такой запрос и дать команду браузеру не открывать новую вкладку, а просто создать новый фрейм на той же странице?

danik.js 20.11.2014 18:56

можно. Только не запрос перехватить, а клик. Нажатие по Enter тоже триггерит событие click. Только надо игнорировать event.button > 0


Часовой пояс GMT +3, время: 14:30.