Вход

Просмотр полной версии : Нужна помощь в модификации скрипта


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
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
Если честно я не совсем до конца понимаю этот алгоритм. На данный момент ссылка "Невидимая ссылка" высвечивается постоянно.

danik.js
25.10.2013, 17:14
<span style="id='mylink'">
Че это за фигня?
<span id="mylink">

zonkon
25.10.2013, 22:42
Это был эксперимент. Неудачный.
Если рассуждать логично, строка со ссылкой должна иметь примерно такой вид
<span
style="visibility: hidden "><a href="http://Мой сайт">Невидимая ссылка</a>
</span> }

а параметр hidden как то должен менять на visible в зависимости от значения 'mylink', т.е. none или inline. Такое ощущение что это масло маслянное. Но ведь должно же быть какое то решение...

zonkon
25.10.2013, 23:37
<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 id="mylink"><a href="http://test.com">Невидимая ссылка</a></span>
Ссылка высвечивается при любых условиях... Подскажите пожалуйста, что не так...

danik.js
26.10.2013, 07:46
Подскажите пожалуйста, что не так...
Это бесполезно тебе подсказывать. Тебе уже было сказано, перечитывай предыдущие ответы.

zonkon
26.10.2013, 09:25
Понять все это не каждому дано... Я всю жизнь отработал за станком и могу с закрытыми глазами выточить любую деталь, а разобраться во всем этом не получается, хотя очень надо.
Спасибо за помощь! Буду стараться дальше.

danik.js
26.10.2013, 09:40
Отсылка была к #8 комментарию (http://javascript.ru/forum/misc/42410-nuzhna-pomoshh-v-modifikacii-skripta.html#post278093) (про порядок скрипта и ссылки)