2014-06-17 13 views
7

Używam instafeed.js do wyświetlania moich najnowszych obrazów z instagramów na mojej stronie. Ale domyślnie łącza do obrazów są otwierane w tym samym oknie. Jest to kod JS: https://github.com/stevenschobert/instafeed.js/blob/master/instafeed.js więcej informacji: http://instafeedjs.comOtwarte linki w nowym oknie w instafeed.js

Próbowałem otworzyć linków w nowym oknie za pomocą tej sztuczki:

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

Ale ta sztuczka nie działa w tej sytuacji.

Jakieś rozwiązanie? Dzięki.

+3

Nie używałem instafeed wcześniej, ale nie można korzystać z opcji szablonu? 'template: ''' – Jop

+0

@Jop Dzięki, ale nie wiem, dlaczego ta opcja nie działa. Wreszcie dodałem 'anchor.target = '_blank';' do pliku JS, a teraz linki otwarte w nowym oknie. – Kasra

+1

@Kasra - nigdy nie powinieneś modyfikować plików źródłowych bibliotek bezpośrednio, ani nie powinieneś ... Steven and Jop dostarczył Ci poprawnych odpowiedzi za pomocą szablonów dostępnych z wtyczką. Sprawdzone i potwierdzone działa idealnie. – zigojacko

Odpowiedz

0

Gotcha! Zgodnie z logiką Kasry, znalazłem rozwiązanie:

W pliku instafeed.js rozejrzyj się po linii 177 i dodaj anchor.setAttribute('target', '_blank'); pięknie.

8

Najlepszym sposobem, aby to zrobić, byłoby użyć opcji template:

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

Nie należy trzeba zmodyfikować plik źródłowy bezpośrednio.

Aby uzyskać więcej informacji na temat działania szablonów, sprawdź dokumentację na stronie templating.

4

zaktualizować linki w późniejszych funkcji

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(); 
}); 
Powiązane problemy