Фильтр по:
  

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Как сделать? Информация для вновь прибывших » Как сделать... » Как скрыть на форуме внешние ссылки от гостей? (Решение на JavaScript)
Как скрыть на форуме внешние ссылки от гостей?
Дата: Воскресенье, 24.07.2011, 23:56 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Komoff,
Quote (Komoff)
1) Как сделать, чтобы все внешние ссылки скрывались автоматом от гостей? Если невозможно скрыть только внешние, то можно все ссылки в сообщениях. По-моему видел этот вопрос уже здесь, но не смог найти.

Кроссбраузерно - только скриптом.
Типа:
Quote (JavaScript)
<script type="text/javascript">
$(function(){
/*Start DocumentReady*/
$('a[href^="http"]:not([href*="likbezz"]),a[href^="/go?"],a[href^="http"]:not(:has(img)")').css({display:'none'});
/*End DocumentReady*/
});
</script>

Где:
$('a[href^="http"]:not([href*="likbezz"]),a[href^="/go?"],a[href^="http"]:not(:has(img)")') - все ссылки со станицы.
Лучше ограничить только ссылками в самих постах.
Типа:
Code
$('td.posttdMessage a[href^="http"]:not([href*="likbezz"]),td.posttdMessage a[href^="/go?"],td.posttdMessage a[href^="http"]:not(:has(img)")').css({display:'none'});

Последнее выражение - пропускает ссылки имеющие в себе картинки ...
...
... и условные операторы ....
Code
<?if(!$USER_LOGGED_IN$)?>Скрипт ....<?endif?>

...
Пример ...
....
По материалам:
Стилизация (оформление) внешних ссылок
....


 
Дата: Понедельник, 25.07.2011, 03:16 |
Полковник
Группа: Помощники
Сообщений: 210
Награды: 0
Репутация: 11
Статус: Offline


likbezz, спасибо, всё работает!
Кстати, можно ещё одним способом для форума. Так как пользователи дают ссылки ВВ-кодом [ url ], всем ссылкам данным таким способом назначается class="link", который ещё проще скрыть. Но после прочтения о jQuery у тебя, решил не скрыть ссылку, а заменить вот таким способом:
Code
<?if(!$USER_LOGGED_IN$)?>
<script type="text/javascript">
$('a.link').after('<a href="/index/3">Доступно только для пользователей</a>').remove();
</script>
<?endif?>
в общем-то это нормально работает. А только для внешних, например, так:
Code
$('td.posttdMessage a[href^="/go?"]').after('<a href="/index/3">Ссылка после регистрации</a>').remove();
Я правильно всё сделал?


Сообщение отредактировал Komoff - Понедельник, 25.07.2011, 04:16
 
Дата: Понедельник, 25.07.2011, 05:05 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Komoff,
Quote (Komoff)
всем ссылкам данным таким способом назначается class="link", который ещё проще скрыть. Но после прочтения о jQuery у тебя, решил не скрыть ссылку, а заменить вот таким способом

Тогда уж:
Code
$('a.link').replaceWith('<a href="/index/3">Доступно только для пользователей</a>');

... Но можно и так ... просто два разных действия выполняется: .after() и .remove() ...

Quote (Komoff)
А только для внешних, например, так:
Code
$('td.posttdMessage a[href^="/go?"]') ....

- Это если включена функция проксирования ...а она появилась не так давно ...
Многие посты на форуме (у меня) появились ещё до включения данной фукнкции ... )

Например, вся вот эта тема «Мои посты на UcoZ форуме в разделе "Оцените сайт"» ... )
...

Quote (Komoff)
Я правильно всё сделал?

Да.
Но, картинки, что залиты на сторонние хостинги тоже будут заменены на ссылку для регистрации.
Думаю, это не совсем хорошо.
...

Код примера:


Материал по теме:
«Стилизация внешних ссылок средствами CSS. Кроссбраузерно»
...


 
Дата: Понедельник, 25.07.2011, 14:42 |
Полковник
Группа: Помощники
Сообщений: 210
Награды: 0
Репутация: 11
Статус: Offline


likbezz, ага, исправил
Code
$('td.posttdMessage a[href^="/go?"]:not(:has(img)")').replaceWith('<a href="/index/3">Ссылка после регистрации</a>');
всё получилось. happy
Quote (likbezz)
Это если включена функция проксирования ...а она появилась не так давно
Да, я просто только с проксированием рассматриваю, потому что форум новый, там оно изначально было включено.
Надо будет почитать обо всех командах jQuery, простые функции я и сам смогу писать.


Сообщение отредактировал Komoff - Понедельник, 25.07.2011, 14:43
 
Дата: Вторник, 26.07.2011, 02:05 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Да, вот неплохой справочник по функциям и прочему для jQuery http://jquery.page2page.ru/
...


 
Дата: Пятница, 29.07.2011, 21:05 |
SoundVan
Рядовой
Группа: Проверенные
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline


Меня интересует вопрос как можно полностью скрыть ссылки для гостей.

Нашёл такой скрипт:
Code
%IF($USER_LOGGED_IN$)%    
%ELSE%    
<script>    
e=document.getElementsByTagName('A');    
for(k=0; k<e.length;k++) {    
if(e[k].className=="link"){    
e[k].innerHTML = "<b>[Ссылки могут видеть только пользователи]</b>";    
e[k].href="$REGISTER_LINK$";    
}    
}    
</script>    
%ENDIF%


В примере на форуме тема. Итог получается что скрываеш только прямую ссылку, но её можно выделить и потом скопировать с помощью кода страницы, либо же ввести в ручную.

Он изначально смотрится нормально, но появляется следующая проблема в скритпе данном при наведение мышкой на ссылку:
видно что когда выделяеш ссылку появляется титул ссылки, мне же нужно чтобы заменить название ссылки к примеру на любое слово.
Искал в интернете около часа, но так и не нашёл подобного.
Заранее спасибо, если такое возможно wink

Прикрепления: 9483773.jpg (12.6 Kb)

Сообщение отредактировал SoundVan - Пятница, 29.07.2011, 21:07
 
Дата: Пятница, 29.07.2011, 23:06 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


SoundVan,
Quote (SoundVan)
Меня интересует вопрос как можно полностью скрыть ссылки для гостей.

На хостинге от юкоз, никак.
Quote (SoundVan)
Нашёл такой скрипт:

- То же самое.
Любой скрытый/вырезанный/удалённый/заменённый/т.д, т.п. скриптом (клиентским - JavaScript и VBScript) элемент, элементарно взять из исходника. (исходного кода страницы)

Такое возможно сделать только при помощи PHP скрипта выполняемого на стороне сервера. Полновесного, а не «php от юкоз».
...

Просто отключил JS:


Исходный код:

...

Прикрепления: 5782878.png (5.9 Kb) · 6391128.png (9.1 Kb)

 
Дата: Суббота, 30.07.2011, 04:31 |
Полковник
Группа: Помощники
Сообщений: 210
Награды: 0
Репутация: 11
Статус: Offline


Quote (likbezz)
Любой скрытый/вырезанный/удалённый/заменённый/т.д, т.п. скриптом (клиентским - JavaScript и VBScript) элемент, элементарно взять из исходника. (исходного кода страницы)
вот-вот, я кстати, когда придумывал как скрыть, узнал что и с помощью [ hide ] в исходнике выводиться ссылка, просто ожидал, что можно использовать системные средства чтобы надежно скрыть. По-моему не доработана эта функция на uCoz. Зато твой вариант, мне больше всего понравился, в общем-то сейчас нет смысла смотреть сайты с отключенным JS, т.к. отпадает большинство функций, да и я нечего секретного не скрываю, для обычных пользователей и этого достаточно. Хотя, я бы пользователей с отключенным JS куда-нить пересылал, как и они с аргументом "ибо нефиг", только вот как.:)
SoundVan, а чем тебе варианты выше не подходят? Там полностью вырезается/заменяется ссылка. Хотя, как уже было сказано, при отключенном JS это работать не будет.


 
Дата: Суббота, 30.07.2011, 08:55 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Komoff,
Quote (Komoff)
в общем-то сейчас нет смысла смотреть сайты с отключенным JS

) - Это здесь не при чём.
Имеется в виду, что если ссылка скрыта на юкозовском форуме, её элементарно получить отключив JS или из исходника страницы.
И то и другое - два клика мышкой.
- Отключить, взять ссылку и опять включить - у меня заняло это от силы две секунды.
С исходником то же самое - копируешь слово/выражение, например «ссылки для скачивания» открываешь исходник, нажимаешь [CTRL] + [F] находишь выражение - вот тебе ссылки. Чуть подольше - секунд пять.
...


 
Дата: Суббота, 30.07.2011, 11:24 |
SoundVan
Рядовой
Группа: Проверенные
Сообщений: 14
Награды: 0
Репутация: 0
Статус: Offline


Code
<?if(!$USER_LOGGED_IN$)?>
<script type="text/javascript">
$('a.link').after('<a href="/index/3">Доступно только для пользователей</a>').remove();
</script>
<?endif?>


Етот код работает так как мне нужно, спасибо.


Сообщение отредактировал SoundVan - Суббота, 30.07.2011, 11:39
 
Дата: Четверг, 04.08.2011, 00:27 |
Полковник
Группа: Помощники
Сообщений: 210
Награды: 0
Репутация: 11
Статус: Offline


Quote (likbezz)
Такое возможно сделать только при помощи PHP скрипта выполняемого на стороне сервера. Полновесного, а не «php от юкоз».
Отправил в предложения по системе.


 
Дата: Четверг, 25.04.2013, 17:13 |
Dejet
Сержант
Группа: Пользователи
Сообщений: 22
Награды: 0
Репутация: 0
Статус: Offline


Прописал вот так:
Код
<script type="text/javascript">
$(function(){  
$('a[href^="/go?"]:not(:has(img)")').css({display:'none'});
});
</script>

но остается место от тегов (br) - несколько ссылок с абзаца.

Как скрыть теги (br)


 
Дата: Четверг, 25.04.2013, 19:24 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Dejet,
Цитата (Dejet, Чт, 25.04.2013, 17:13:21)
Как скрыть теги (br)

Если все сестринские (соседние), то вот так:
Код
$('a[href^="/go?"]:not(:has(img)")').css('display','none').siblings('br').css('display','none');


Если вообще все, то вот так:
Код
$('a[href^="/go?"]:not(:has(img)"),br').css('display','none');


Если только соседние сверху, то вот так:
Код
$('a[href^="/go?"]:not(:has(img)")').css('display','none').prev('br').css('display','none');


Если соседние снизу, то вот так:
Код
$('a[href^="/go?"]:not(:has(img)")').css('display','none').next('br').css('display','none');

...

Или комбинации из предложенных, на вкус )


 
Дата: Четверг, 25.04.2013, 21:02 |
Dejet
Сержант
Группа: Пользователи
Сообщений: 22
Награды: 0
Репутация: 0
Статус: Offline


Я сделал вот так, будет ли это правильно (работает отлично)

Код
$('a[href^="/go?"]:not(:has(img)"),a[href^="/go?"]+br').css({display:'none'});


 
Дата: Четверг, 25.04.2013, 22:39 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Dejet,
Цитата (Dejet, Чт, 25.04.2013, 21:02:02)
будет ли это правильно (работает отлично)

Если работает именно так как надо, то да ) правильно )

А вообще, проще использовать:
Код
[hide]текст[/hide]


 
Скрипты и коды для юкоз - Форум аццкого кодера » Как сделать? Информация для вновь прибывших » Как сделать... » Как скрыть на форуме внешние ссылки от гостей? (Решение на JavaScript)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:


Мобильная версия