Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка перехода по ссылке (https://javascript.ru/forum/misc/18823-proverka-perekhoda-po-ssylke.html)

Jack 17.07.2011 02:44

Проверка перехода по ссылке
 
Здравствуйте, уважаемые форумчане. Я столкнулся с такой задачей ...
Есть скрипт, но хотелось бы его видеть более доработанным ))))


<script type="text/javascript" src="scripts/base.debug.js"></script>
	    <script type="text/javascript">
	window.onload = function() {
    function pFp(){ 
	        var hid = document.getElementById("hidden"),
	            tak = [],
	            elems = document.getElementsByTagName('A'),
	            num = elems.length,
	            pat = new RegExp("(^|\\b)(takru)(\\b|$)"),
	            i = 0, j = 0;
        for (; i < num; i++) { 
	            if (pat.test(elems[i].className)) { 
	                var f = function() {
	                    setTimeout(function() {
	                        hid.style.display = "";
	                    }, 1000);
	                };
	                elems[i].setAttribute('target', '_blank'); 
	                if (elems[i].addEventListener) elems[i].addEventListener("click", f, false); 
	                else if (elems[i].attachEvent) elems[i].attachEvent("onclick", f); 
	                else elems[i].onclick = f; 
	                j++;
	            } 
	        } 
	    }; 
	    pFp();
	};
	    </script>
	</head>
	<body>

            ссылки

	<div id="hidden" style="display: none;">{param}</div>


Не подскажите, как сделать проверку адреса ссылок, по которым переходит пользователь для отображения скрытого параметра?
Проверка ... я имею в виду, если пользователь кликает на http://------**-----.ru/, то скрипт не отображает скрытый параметр, а если на другие ссылки, то отображает ...

trikadin 17.07.2011 13:37

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

monolithed 17.07.2011 15:58

Jack, на вскидку:
<a href="http://ya.ru/" id="a">click</a>

<script>
document.getElementById('a').onclick = function() {
    var hostname = this.hostname;
    if(hostname == 'ya.ru') {
        this.innerHTML = hostname;
    }
    return false;
};
</script>

Jack 17.07.2011 21:11

monolithed, огромное спасибо, но есть одно НО
Блок ссылок идёт скриптом, и я его не могу редактировать ...Т.е. через Id выполнить проверку не получится ...
<a href="http://www.ya.ru" class="class123456"><b>Clicks</b></a>

Поэтому попробывал сделать через ClassName
<script>
document.getElementByclassname('class123456').onclick = function() {
    var hostname = this.hostname;
    if(hostname == 'http://www.ya.ru') {
        this.innerHTML = hostname;
    }
    return false;
};
</script>

Но теперь туплю и не могу понять, куда вставить скрипт :write: ?

monolithed 17.07.2011 21:28

Цитата:

Сообщение от Jack
через Id выполнить проверку не получится

значит нужно работать с тем что есть (элемент, атрибут, класс..)
Цитата:

Сообщение от Jack
document.getElementByclassname('class123456')

тут опечатка, и метод не кроссбраузерный.
Цитата:

Сообщение от Jack
Но теперь туплю и не могу понять, куда вставить скрипт

тут ничем помочь

Jack 18.07.2011 05:22

... пф ... :blink:
<script type="text/javascript" src="scripts/base.debug.js"></script>
	    <script type="text/javascript">
	window.onload = function() {
    function pFp(){ 
	        var hid = document.getElementById("hidden"),
	            tak = [],
	            elems = document.getElementsByTagName('A'),
	            num = elems.length,
	            pat = new RegExp("(^|\\b)(takru)(\\b|$)"),
	            i = 0, j = 0;
        for (; i < num; i++) { 
	            if (pat.test(elems[i].className)) { 
	                var f = function() {
	                    setTimeout(function() {
	                        hid.style.display = "";
	                    }, 1000);
	                };
	                elems[i].setAttribute('target', '_blank'); 
	                if (elems[i].addEventListener) elems[i].addEventListener("click", f, false); 
	                else if (elems[i].attachEvent) elems[i].attachEvent("onclick", f); 
	                else elems[i].onclick = f; 
	                j++;
	            } 
	        } 
	    }; 
	    pFp();
	};
	    </script>
	</head>
	<body>
<a href="http://www.-l-.com" class="La128v"><b>click1</b></a>
<a href="http://www.-l-.com/864684" class="La128v"><b>lalalala</b></a>
<a href="http://www.-l-.com/933.20122" class="La128v"><b>lalalala</b></a>
<a href="http://www.-l-.com/yhwjjdu" class="La128v"><b>lalalala</b></a>
<a href="http://www.-l-.com/486rt68h" class="La128v"><b>lalalala</b></a>
<a href="http://www.-l-.com/4rht486h" class="La128v"><b>lalalala</b></a>
<a href="http://www.-l-.com/rt8h464" class="La128v"><b>lalalala</b></a>
<a href="http://www.-l-.com/4r86th46" class="La128v"><b>lalalala</b></a>
<a href="http://www.-l-./rth486864" class="La128v"><b>lalalala</b></a>

	<div id="hidden" style="display: none;">{param}</div>


Нужно сделать так, чтобы ссылка click1 не показывал скрытый параметр ...
Кто сможет более подробней помочь ? )

monolithed 18.07.2011 11:10

Цитата:

Сообщение от Jack
Нужно сделать так, чтобы ссылка click1 не показывал скрытый параметр ...

излагайте свои мысли конкретней. Если нужно пропустить первый элемент, то начните цикл с 1, т.е. i = 1;

Jack 18.07.2011 14:40

Цитата:

Сообщение от monolithed (Сообщение 113915)
излагайте свои мысли конкретней.

<a href="http://www.-l-.com" class="La128v"><b>click1</b></a> // от клика по этой ссылке скрытый параметр не отображается
<a href="http://www.-l-.com/864684" class="La128v"><b>lalalala</b></a> // от клика по этой ссылке скрытый параметр  отображается
<a href="http://www.-l-.com/933.20122" class="La128v"><b>lalalala</b></a> // от клика по этой ссылке скрытый параметр отображается
<a href="http://www.-l-.com/yhwjjdu" class="La128v"><b>lalalala</b></a> // от клика по этой ссылке скрытый параметр отображается
<a href="http://www.-l-.com/486rt68h" class="La128v"><b>lalalala</b></a> // от клика по этой ссылке скрытый параметр отображается
<a href="http://www.-l-.com/4rht486h" class="La128v"><b>lalalala</b></a> // от клика по этой ссылке скрытый параметр отображается
<a href="http://www.-l-.com/rt8h464" class="La128v"><b>lalalala</b></a> // от клика по этой ссылке скрытый параметр отображается
<a href="http://www.-l-.com/4r86th46" class="La128v"><b>lalalala</b></a> // от клика по этой ссылке скрытый параметр отображается
<a href="http://www.-l-./rth486864" class="La128v"><b>lalalala</b></a> // от клика по этой ссылке скрытый параметр отображается

Цитата:

Сообщение от monolithed (Сообщение 113915)
излагайте свои мысли конкретней. Если нужно пропустить первый элемент, то начните цикл с 1, т.е. i = 1;

Хм ... попробывал поставить i=1, всё равно при клике на первую ссылку отображается скрытый параметр


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