Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужна помощь в модификации скрипта (https://javascript.ru/forum/misc/42410-nuzhna-pomoshh-v-modifikacii-skripta.html)

zonkon 25.10.2013 00:08

Нужна помощь в модификации скрипта
 
Появилась идея модифицировать скрипт
<SCRIPT LANGUAGE="JavaScript">
 function getCookie(name) {
 var cookie = " " + document.cookie;
 var search = " " + name + "=";
 var setStr = null;
 var offset = 0;
 var end = 0;
 if (cookie.length > 0) {
 offset = cookie.indexOf(search);
 if (offset != -1) {
 offset += search.length;
 end = cookie.indexOf(";", offset)
 if (end == -1) {
 end = cookie.length; }
 setStr = unescape(cookie.substring(offset, end)); } }
 return(setStr);}
 var block = document.cookie.indexOf('block');
 if ( block != -1 )
 { alert('привет'); }
 else
 { alert('пока'); }
</SCRIPT>

А смысл такой. В скрипте видно что при наличии куки block высвечивается одно сообщение, а при отсутствии другое. Но хочется его немного изменить. Нужно чтобы при наличии куки block высвечивалась ссылка на нужную страницу сайта, а при отсутствии ссылка не должна высвечиваться.
Нашел как сделать ссылку невидимой или видимой
<span  style="visibility: hidden ">
 <a href="http://Мой сайт">Видимая/Невидимая ссылка</A>
</span>

попробовал сделать следующее
<SCRIPT LANGUAGE="JavaScript">
 function getCookie(name) {
 var cookie = " " + document.cookie;
 var search = " " + name + "=";
 var setStr = null;
 var offset = 0;
 var end = 0;
 if (cookie.length > 0) {
 offset = cookie.indexOf(search);
 if (offset != -1) {
 offset += search.length;
 end = cookie.indexOf(";", offset)
 if (end == -1) {
 end = cookie.length; }
 setStr = unescape(cookie.substring(offset, end)); } }
 return(setStr);}
 var block = document.cookie.indexOf('block');
 if ( block != -1 )
 { <span  style="visibility: visible "><a href="http://Мой сайт">Видимая ссылка</A></span> }
 else
 { <span  style="visibility: hidden "><a href="http://Мой сайт">Невидимая ссылка</A></span> }
</SCRIPT>

Но как вы уже догадались ничего не получилось. Насколько я понял строки <span></span> в самом скрипте быть не должно и ссылка на страницу может быть в любом другом месте. Но как тогда вызвать скрипт и присвоить значение visible или hidden в зависимости от наличия или отсутствия куки block?

danik.js 25.10.2013 00:15

пропиши айдишник своему span'у, по нему можешь управлять видимостью:
document.getElementById('mylink').style.display = 'none' // 'inline' для видимости

zonkon 25.10.2013 00:44

А куда это нужно вставлять?

danik.js 25.10.2013 05:04

Туда же

zonkon 25.10.2013 15:35

Значит, как я понимаю, скрипт должен иметь такой вид?
<SCRIPT LANGUAGE="JavaScript">
 function getCookie(name) {
 var cookie = " " + document.cookie;
 var search = " " + name + "=";
 var setStr = null;
 var offset = 0;
 var end = 0;
 if (cookie.length > 0) {
 offset = cookie.indexOf(search);
 if (offset != -1) {
 offset += search.length;
 end = cookie.indexOf(";", offset)
 if (end == -1) {
 end = cookie.length; }
 setStr = unescape(cookie.substring(offset, end)); } }
 return(setStr);}
 var block = document.cookie.indexOf('block');
 if ( block != -1 )
 {  document.getElementById('mylink').style.display = 'inline';}
 else
 {  document.getElementById('mylink').style.display = 'none'; }
</SCRIPT>

Появляется еще вопрос КУДА ВСТАВЛЯТЬ ССЫЛКУ НА СТРАНИЦУ?

danik.js 25.10.2013 15:47

Цитата:

Сообщение от zonkon
Появляется еще вопрос КУДА ВСТАВЛЯТЬ ССЫЛКУ НА СТРАНИЦУ?

Туда, где ее нужно вывести. Спасибо кстати, что повысили меня до звания Капитана.

zonkon 25.10.2013 15:52

То есть как то так?
<SCRIPT LANGUAGE="JavaScript">
 function getCookie(name) {
 var cookie = " " + document.cookie;
 var search = " " + name + "=";
 var setStr = null;
 var offset = 0;
 var end = 0;
 if (cookie.length > 0) {
 offset = cookie.indexOf(search);
 if (offset != -1) {
 offset += search.length;
 end = cookie.indexOf(";", offset)
 if (end == -1) {
 end = cookie.length; }
 setStr = unescape(cookie.substring(offset, end)); } }
 return(setStr);}
 var block = document.cookie.indexOf('block');
 if ( block != -1 )
 {  document.getElementById('mylink').style.display = 'inline';}
 else
 {  document.getElementById('mylink').style.display = 'none'; }
</SCRIPT>

<span style="id='mylink'"><a href="http://test.com">Невидимая ссылка</A></span>

danik.js 25.10.2013 15:56

Почти. только скрипт нужно опустить ниже, либо ждать события DOMContentLoaded

zonkon 25.10.2013 15:58

Ниже span?

zonkon 25.10.2013 16:09

Если честно я не совсем до конца понимаю этот алгоритм. На данный момент ссылка "Невидимая ссылка" высвечивается постоянно.


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