Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите написать скрипт открытия ссылки в новой вкладке

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Если домен ссылки отличается от основного домена, то ему должно присваиваться target="_blank"
Айратиус
Отправлено: 30 Марта, 2015 - 09:52:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


Помог: 0 раз(а)




В JS к сожалению мало что знаю. Поэтому прошу помощи спецов написать этот скрипт. Надеюсь не составит для вас труда и заранее благодарен за отзывчивость.

Вот как должно быть

Сайт лежит на домене site.ru и все ссылки которые начинаются на site.ru должны остаться неизменными.

А вот если ссылка подобия
CODE (html):
скопировать код в буфер обмена
  1. <a href="http://ya.ru">Ссылка</a>
(отличается от site.ru), то ему уже присвоить target="_blank"
 
 Top
Tyoma5891
Отправлено: 30 Марта, 2015 - 10:33:13
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




PHP:
скопировать код в буфер обмена
  1. $server = $_SERVER['SERVER_NAME'];


CODE (html):
скопировать код в буфер обмена
  1. <a href="http://ya.ru" id="server">Ссылка</a>


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var server = '<?=$server?>';
  3. if (server!='site.ru')
  4. {
  5.       $('#server').attr('target','_blank');
  6. }
  7.  

не проверял...но как то так...
 
 Top
Faraon-san
Отправлено: 30 Марта, 2015 - 10:54:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


Помог: 8 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. function parseURL(url){
  2.                 var _this = {};
  3.             var pattern = "^(([^:/\\?#]+):)?(//(([^:/\\?#]*)(?::([^/\\?#]*))?))?([^\\?#]*)(\\?([^#]*))?(#(.*))?$";
  4.             var rx = new RegExp(pattern);
  5.             var parts = rx.exec(url);
  6.            
  7.             _this.href = parts[0] || "";
  8.             _this.protocol = parts[1] || "";
  9.             _this.host = parts[4] || "";
  10.             _this.hostname = parts[5] || "";
  11.             _this.port = parts[6] || "";
  12.             _this.pathname = parts[7] || "/";
  13.             _this.search = parts[8] || "";
  14.             _this.hash = parts[10] || "";
  15.  
  16.             return _this;
  17.         }
  18.         var elem = document.getElementsByTagName('a');
  19.         var hostname = location.hostname;
  20.         for(var i = 0; i < elem.length; i++){
  21.                 var url = parseURL(elem[i].getAttribute('href'));
  22.                 if(url.hostname != '' && hostname != url.hostname){
  23.                         elem[i].setAttribute('target', '_blank');
  24.                 }
  25.         }

(Отредактировано автором: 30 Марта, 2015 - 10:58:41)

 
 Top
SAD
Отправлено: 30 Марта, 2015 - 11:22:14
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var elem = document.getElementsByTagName('a');
  2.         var hostname = location.hostname;
  3.         for(var i = 0; i < elem.length; i++){
  4.                 if(elem.hostname != url.hostname){
  5.                         elem[i].setAttribute('target', '_blank');
  6.                 }
  7.         }
 
 Top
Айратиус
Отправлено: 02 Апреля, 2015 - 09:07:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Нояб. 2012  
Откуда: Россия


Помог: 0 раз(а)




Спасибо большое! Помогло. Еще один вопрос есть. Кому не сложно посмотрите пож-ста тему http://forum.php.su/topic.php?fo...0&topic=6029

(Отредактировано автором: 02 Апреля, 2015 - 09:08:45)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB