21 (05.10.2012 01:55 отредактировано Amigo)

Re: Способы "закрытия" ссылок через javascript

admin пишет:

Что это за хрень и для чего она?

Она назначена для внутренних ссылок которые просто являются дублями других ссылок. Если есть блок в котором есть и текст (anchor) и картинка, и если не возможно поставит ссылку на вес блок (или не целесообразно), тогда на текст ставится нормальная ссылка, а на картинку просто ссылка с помощи javascript. Это для того чтоб снизить количество ссылок которые просто дублируют нормальные ссылки с анкором.

admin пишет:

Ты собрался внутренние ссылки так закрывать?

ну так можно закривать и внутренние и внешние.

ПафНутиЙ пишет:

терпеть не могу инлайн-js-код, это зло.

Ну факт что это вам не нравится это ваше субъективное мнение, а что касается что это зло вот тут вы перешли на объективный уровень и для этого нужно чтоб вы объяснили почему это зло. Только ваша субъективное мнение не основа считать внутренний javascript злом. Объясните пожалуйста, я всегда рад учится от тех у кого больше опита .

22

Re: Способы "закрытия" ссылок через javascript

Amigo пишет:

Ну факт что это вам не нравится это ваше субъективное мнение

да, это моё ИМХО.
Первая, и основная, причина - это не красиво и не практично. Для меня лично изящность исходного кода - весомый критерий для повышения ЧСВ ))) почему мы разделяем php и html, html и css? ведь можно всё сгрести в один файл... так даже количество http-запросов резко уменьшится.
Над сайтом зачастую трудится не один человек и разработчик, которому достаётся после меня код наверняка ожидает увидеть удобочитаемый код.
Не практично, потому что если надо откртыть другую ссылку так же, придётся и ей долбить onclick, а достаточно всего указать у ссылки нужный класс и атрибут и все ссылки автоматом будут иметь одинаковое поведение.

23

Re: Способы "закрытия" ссылок через javascript

ПафНутиЙ пишет:

...

Всё понятно, спасибо!

24

Re: Способы "закрытия" ссылок через javascript

Внешние ссылки можно переадресовать редиректом, в том числе и с определенных доменов (для сайтов с ссылками на обменники, к примеру)

в index.php (что в корне сайта) найти

Код:

$tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" );

заменить на

Код:

$url_ext = $tpl->result['content'];
$url_ext = str_replace ( 'http://site1.ru/', '/go.php?u=site1.ru/', $url_ext);
$url_ext = str_replace ( 'http://site2.ru/', '/go.php?u=site2.ru/', $url_ext);
$url_ext = str_replace ( 'http://site3.ru/', '/go.php?u=site3.ru/', $url_ext);


$tpl->set ( '{content}', "<div id='dle-content'>" . $url_ext. "</div>" );

А также в корень добавить файл go.php со следующим содержанием:

Код:

<?php
    $url = $_GET['u'];
    header('Location: http://'.$url);
?>

Пишете список доменов, которые надо сделать не внешними

25

Re: Способы "закрытия" ссылок через javascript

OKyJIucT пишет:

Внешние ссылки можно переадресовать редиректом, в том числе и с определенных доменов (для сайтов с ссылками на обменники, к примеру)

А если сайт не на DLE? ))

26

Re: Способы "закрытия" ссылок через javascript

ПафНутиЙ пишет:

А если сайт не на DLE? ))

я думаю, принцип везде одинаковый:) А в целом, я с другими движками не работал, но планирую)

Как освою, обязательно сообщу здесь реализацию и для других движков. Кроме того, я в PHP не очень силен, поэтому наверняка существуют более универсальные способы, о которых я пока не знаю.

27

Re: Способы "закрытия" ссылок через javascript

Вообще обрабатываются ссылки в parse.class.php если не ошибаюсь, и записываютсяв БД в нужном виде. Так что проще туда модификации вносить, но о них пока рано говорить - нужно подождать результаты эксперимента.

28 (08.10.2012 21:44 отредактировано OKyJIucT)

Re: Способы "закрытия" ссылок через javascript

ПафНутиЙ пишет:

Вообще обрабатываются ссылки в parse.class.php если не ошибаюсь, и записываютсяв БД в нужном виде. Так что проще туда модификации вносить, но о них пока рано говорить - нужно подождать результаты эксперимента.

но такой вариант подойдет только в том случае, если новостей с ссылками, Которые надо "закрыть" еще нет. К тому же он тоже привязан к движку DLE

В любом случае, надо рассматривать каждый конкретный случай:)

29

Re: Способы "закрытия" ссылок через javascript

OKyJIucT пишет:

Внешние ссылки можно переадресовать редиректом

Редирект это не то и не интересно.
Мы тут обсуждаем принципиально другое решение.

30

Re: Способы "закрытия" ссылок через javascript

OKyJIucT пишет:

Внешние ссылки можно переадресовать редиректом, в том числе и с определенных доменов (для сайтов с ссылками на обменники, к примеру)

Ссылка на редирект, тоже ссылка.)) Закрыл методом Паши у себя в полной новости лишние блоки, потому что уверен что эксперимент удастся.

31

Re: Способы "закрытия" ссылок через javascript

Ненужные ссылки убираю таким образом

$(document).ready(function(){
 $('a[href^=#]').each(function(){
$(this).attr('href', $(this).attr('href').substr(1));
 });
});

Формат ссылки получается <a href="#http:....

Интересный эксперимент, успехов.

32

Re: Способы "закрытия" ссылок через javascript

Извиняюсь, я не понимаю всё это,  - можно немного разжевать?
К примеру чтобы закрыть ссылку счётчика LI куда и что нужно добавить? smile

33

Re: Способы "закрытия" ссылок через javascript

Не нужно закрывать ссылки счётчиков - это бред.

34

Re: Способы "закрытия" ссылок через javascript

Я бы закрыл!... А если другие ссылки? Например рекламных баннеров или в комментариях типа - почта@mail.ru?

35

Re: Способы "закрытия" ссылок через javascript

Vanchik пишет:

К примеру чтобы закрыть ссылку счётчика LI куда и что нужно добавить?

Vanchik пишет:

А если другие ссылки? Например рекламных баннеров или в комментариях типа - почта@mail.ru?

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

36 (20.12.2012 14:23 отредактировано Gaborik)

Re: Способы "закрытия" ссылок через javascript

Кому не сложно напишите чайнику как для DLE использовать данный способ:

вариант без использования структуры <a href=""></a>

Код ссылки на странице:

<span class="hidden-link" data-link="http://goo.gl">внешняя ссылка</span>

Скрипт, который будет обрабатывать ссылку и открывать ее:

<script>$('.hidden-link').click(function(){window.open($(this).data('link'));return false;});</script>

Мой вариант 100% не вызовет никаких подозрений у поисковика, так как даже структурно в коде нет ссылки, а просто кусок текста (он же анкор) выделен спаном <span>, что довольно часто используется при разметке документов.

Однако и отображаться такая «ссылка» будет как обычный текст на странице. Придется пошаманить с css, чтобы имитировать ссылку. Например, добавить в свой css:

span.hidden-link {
    color: #00ff00; /*-цвет ссылки-*/
    text-decoration: underline; /*-подчеркивание-*/
    cursor: pointer; /*-указатель в виде пальца-*/
}

37 (25.12.2012 18:10 отредактировано Vanchik)

Re: Способы "закрытия" ссылок через javascript

Ссылку счётчика удалось закрыть, но только на ДЛЕ, на ВП ссылка закрыта но не кликабельна. Способ под спойлером:

+ открыть спойлер
Скрипт - <script>$('a.link').click(function(){window.open($(this).data("link"));return false;});</script>
к ссылке счётчика добавить <a href="#" class="link" rel="сылка"</a>

Исходящие ссылки с постов закрыть не получается. Также не получается закрыть внутренние не нужные ссылки сайта, они закрываются, но не доступны по своему адресу - ведут на главную.

Нужна помощь, согласен заплатить.

38

Re: Способы "закрытия" ссылок через javascript

Может быть подскажите как валидатор побороть, он на data-link орет матом и не признает... Возможны ли варианты скрытия ссылки, при этом не теряя валидности XHTML 1.0?

39

Re: Способы "закрытия" ссылок через javascript

Читайте внимательно первый пост после слов

UPD (03.10.2012)

40

Re: Способы "закрытия" ссылок через javascript

Спасибо за ответ. Не знал, что в html5 атрибут data-link валиден.