Открывайте ссылки в новом окне с панелью инструментов вверху - как панель инструментов reddit.com - PullRequest
0 голосов
/ 30 марта 2010

Так что я хочу иметь возможность использовать jquery или подобное, чтобы все внешние ссылки были

а. Открыт в новом окне (я думаю, что это покрыто Отсюда )

$(document).ready(function() {
    $('a[href^="http://"]').filter(function() {
        return this.hostname && this.hostname !== location.hostname;
    }).attr('target', '_blank');  
});

б. Открывается с настраиваемой панели инструментов (iframe?) Вверху (например, панель инструментов reddit imgur.com/76YCS.jpg)

Ответы [ 2 ]

1 голос
/ 30 марта 2010

С точки зрения реализации вы не можете фактически ссылаться на внешний сайт и добавлять панель инструментов.

Reddit достигает этого, переписывая свои внешние ссылки на внутреннюю ссылку с добавленным хешем. Хеш хранится в их базе данных и используется в качестве идентификатора. При посещении ссылки набор фреймов загружается вместе с панелью инструментов в один фрейм, а соответствующий внешний URL-адрес для этого хэша загружается в основной фрейм.

Если вы посмотрите на скриншот, то увидите, что URL-адрес reddit.com/tb/bk40q

На самом деле эта проблема лучше всего не подходит для клиентской стороны.

0 голосов
/ 22 апреля 2010

Мне удалось сделать это полностью, используя Jquery, Html и Css

Сначала вы применяете панель инструментов ко всем ссылкам, кроме внешних в вашем скрипте, т.е.: global.js

$("a[href^='http:']").not("[href*='www.YOURDOMAIN.com']").each(function(){ 
    var tempurl = 'http://www.YOURDOMAIN.com/thebar/thebar.html?iframe=';
    var $this = $(this);
   // We grab the current href here, and then combine it with the bar url
    var currenturl = this.getAttribute("href");
    var href = tempurl + currenturl;
    $this.attr('href', href ); 
});

Весь код для iframe доступен онлайн, если требуется, я могу опубликовать здесь. (это просто много)

...