2014-06-17 7 views
7

Я использую instafeed.js, чтобы показать свои последние изображения instagram на моем сайте. Но по умолчанию ссылки изображений открываются в том же окне. Это код JS: https://github.com/stevenschobert/instafeed.js/blob/master/instafeed.js Дополнительная информация: http://instafeedjs.comОткрыть ссылку в новом окне in instafeed.js

Я попытался открыть ссылки в новом окне, используя этот трюк:

<script> 
$(function(){ 
    $("#instafeed a").attr("target","_blank"); 
}); 
</script> 

Но этот трюк не работает в этой ситуации.

Любое решение? Благодарю.

+3

Я раньше не использовал instafeed, но вы не можете использовать параметр шаблона? 'template: ''' – Jop

+0

@Jop Спасибо, но я не знаю, почему этот параметр не работает. Наконец, я добавил 'anchor.target = '_blank';' в JS-файл и теперь ссылки открываются в новом окне. – Kasra

+1

@ Kasra - вы никогда не должны изменять исходные файлы библиотек напрямую, и вам никогда не придется ... Стивен и Джоп предоставили вам правильные ответы, используя параметры шаблонов, доступные с плагином. Протестировано и подтверждено отлично работает. – zigojacko

ответ

0

Gotcha! Следуя логике Касры, нашел решение:

В вашем файле instafeed.js, посмотрите вокруг строки 177 и добавьте anchor.setAttribute('target', '_blank'); работает красиво.

8

Лучший способ сделать это, будет использовать опцию template:

var feed = new Instafeed({ 
    template: '<a href="{{link}}" target="_blank"><img src="{{image}}" /></a>' 
    // other settings... 
}); 

Вам не нужно изменять исходный файл напрямую.

Дополнительную информацию о работе шаблонов см. В документации по адресу templating.

4

Я обновить ссылки в после функции

jQuery(document).ready(function($){ 
    var loadButton = $('#load-more'); 
    var feed = new Instafeed({ 
    get: 'user', 
    userId: xxx, 
    accessToken: 'xxxx', 
    limit:160, 
    after: function() { 
     $("#instafeed a").attr("target","_blank"); 
     // disable button if no more results to load 
     if (!this.hasNext()) { 
     loadButton.attr('disabled', 'disabled'); 
     } 
    } 
    });  

    $('#load-more').on('click', function() { 
    feed.next(); 
    }); 
    feed.run(); 
}); 
Смежные вопросы