2012-07-03 5 views
32

Próbowałem znaleźć rozwiązanie, ale nie mogę. Potrzebuję niestandardowego obrazu dla Pinteresta (Przypnij go) i przypiąć niestandardowy obraz do adresu URL, ale nie do bieżącej strony.Niestandardowy przycisk Pinterest dla niestandardowego adresu URL (łącze tekstowe, obraz lub oba)

Stworzyłem linka niestandardowe:

<a href="http://pinterest.com/pin/create/button/?url=http://inspired-ui.com&media={ImageURL}&description=DescriptionText" class="pinitbutton">Pin It</a> 

w stylu ustawić obraz tła ale widzę domyślnie tylko przycisk Pin It a nie mój własny przycisk

Istnieje kilka rozwiązań, w którym można ustawić niestandardowy Obraz przycisku dla przycisku Pin It, ale nie mogę zmienić nośnika = {ImageURL} w tych rozwiązaniach.

Popularna rozwiązaniem jest

<a href='javascript:void((function()%7Bvar%20e=document.createElement(&apos;script&apos;);e.setAttribute(&apos;type&apos;,&apos;text/javascript&apos;);e.setAttribute(&apos;charset&apos;,&apos;UTF-8&apos;);e.setAttribute(&apos;src&apos;,&apos;http://assets.pinterest.com/js/pinmarklet.js?r=&apos;+Math.random()*99999999);document.body.appendChild(e)%7D)());'><img src='http://www.brandaiddesignco.com/blog/PinIt.png'/></a> 

Ale to mi nie pomaga. Czy ktoś zna rozwiązanie?

+0

Jakieś rozwiązanie, jak to zrobić? – Sergey

Odpowiedz

22

Rzeczywiście popularnym rozwiązaniem przez Jeremy Mansfield na www.brandaiddesignco.com ma świetny sposób, aby dostosować przycisk Pinterest jakikolwiek sposób chcesz!

Zrobiłem trzy przykłady, w postaci jsFiddle na, dzięki czemu można zobaczyć, jak to zrobić za pomocą tej metody.

referencyjny:jsFiddle Text-Link method
referencyjny:jsFiddle Custom Logo method
referencyjny:jsFiddle Custom Logo and Image method

Więcej Pintereście informacji, zobacz moje inne SO Answer.

+0

To jest fenomenalne wyjaśnienie, dzięki! –

+2

Heads up: to jest za stary guzik z podpisem interesu. – phillyslick

+1

Dzięki za opinie Ben Polinsky. Te stare przykłady jsFiddle są dla stron wciąż używających [http://assets.pinterest.com/js/pinmarklet.js](http://assets.pinterest.com/js/pinmarklet.js) zamiast nowszych [http: //assets.pinterest.com/js/pinit.js](http://assets.pinterest.com/js/pinit.js) Pliki JavaScript. Aby uzyskać więcej informacji o NOWYM Pinterest Pin It Button, zobacz [oficjalna strona] (https://developers.pinterest.com/pin_it/). Gdy stara metoda nie będzie obsługiwana przez Pinterest, usuniemy tę odpowiedź. Twoje zdrowie! – arttronics

17

Ryzykując nadmiernego upraszczania rzeczy, używaj swojej ścieżki 'http://pinterest.com/pin/create/button/?url=', którą już masz, ustawiaj swoje zmienne i dołączaj je tak, jak to robisz, i po prostu nie włączaj żadnego JavaScriptu. Bez tego js nie znajdzie łącza i zastąpi go swoim własnym przyciskiem pinterest. Po prostu spersonalizuj swój link obrazem w środku (lub ustaw obraz tła lub cokolwiek innego) i wkręć pinterest js. Ustaw cel, aby otworzyć w nowym oknie.

+0

To znacznie uprościło proces. Dlaczego wcześniej o tym nie pomyślałem ... Dziękuję! – Taylor714

+0

Cześć, dziękuję za wgląd. Czy mógłbyś podać przykład? Myślę, że byłoby to bardzo pomocne. –

+1

@MichaelSmith Mogę ... ale szczerze mówiąc, odpowiedź autorstwa rharvey jest prawdopodobnie lepsza, ponieważ jest bardziej niezawodna. Jeśli nadal chcesz mieć przykład inny niż js, daj mi znać, a ja go wypiszę. – courtsimas

20

Dodawanie zakodowany spacje przed ostatnim fragmentem URL uniemożliwi Pinterest JS z „porwania” link:

//pinterest.com/pin/create/%20button?url= 

Aktualizacja:

Wydaje się, że moje poprzednie rozwiązanie nie pracować już. Oto jeszcze jeden:

//pinterest.com/pin/create%2Fbutton/?url= 
+0

Powoduje to, że szpilki zawiodły dla mnie. –

+0

@d_ethier Zaktualizowano! – nkm

+0

To zadziała (po prostu przetestowano 5 minut temu) ... ale musisz również podać, co mówią, parametr "image_url". Ich powiadomienie kłamie, musisz użyć "mediów" i to zadziała. Tak, /?url=mysite.com & media = mysite.com/whatever-image.jpg –

14

niestandardowy link/przycisk wygląda tak:

<a href="http://stackoverflow.com/questions/11312923/custom-pinterest-button-for-custom-url-text-link-image-or-both" data-image="http%3A%2F%2Fcdn.sstatic.net%2Fstackexchange%2Fimg%2Flogos%2Fso%2Fso-logo.png" data-desc="Custom Pinterest button for custom URL (Text-Link, Image, or Both)" class="btnPinIt"> 
    Custom Pin it image or text here! 
</a> 

Uwaga: Nie sądzę atrybuty danych muszą być zakodowane (tak jak ja dla danych obrazów) ale wydaje się, że to nie szkodzi.

JQuery:

$('.btnPinIt').click(function() { 
    var url = $(this).attr('href'); 
    var media = $(this).attr('data-image'); 
    var desc = $(this).attr('data-desc'); 
    window.open("//www.pinterest.com/pin/create/button/"+ 
    "?url="+url+ 
    "&media="+media+ 
    "&description="+desc,"_blank"); 
    return false; 
}); 
+0

Najprostszym rozwiązaniem i działa! – Skyzer

+0

Dokładnie tego, czego szukałem. –

+0

działa. prosty i lekki. Dodałem również następujące parametry do wywołania window.open, aby bardziej przypominać okno wyskakujące oob papp ... , "pasek narzędzi = nie, paski przewijania = nie, zmieniany rozmiar = nie, górna = 0, prawa = 0, szerokość = 750, wysokość = 320" – anthony

2

Po trochę prób i błędów, poniżej jest co pracował dla mnie. Ta odpowiedź jest kombinacją wątku odpowiedzi @ rharvey i innego postu przepełnienia stosu. To rozwiązanie otwiera wyskakujące okienko do udostępniania treści za pośrednictwem Pinterest.

Uwaga: Aby zapobiec pojawieniu się dwóch okien, należy ustawić cel. Poniżej znajduje się pełne rozwiązanie:

<a href="http://stackoverflow.com/questions/11312923/custom-pinterest-button-for-custom-url-text-link-image-or-both" data-image="http%3A%2F%2Fcdn.sstatic.net%2Fstackexchange%2Fimg%2Flogos%2Fso%2Fso-logo.png" data-desc="Custom Pinterest button for custom URL (Text-Link, Image, or Both)" class="btnPinIt" target= "pinIt"> 
    Custom Pin it image or text here! 
</a> 

<script> 
$('.btnPinIt').click(function() { 
    var url = $(this).attr('href'); 
    var media = $(this).attr('data-image'); 
    var desc = $(this).attr('data-desc'); 
    window.open("//www.pinterest.com/pin/create/button/"+ 
    "?url="+url+ 
    "&media="+media+ 
    "&description="+desc,"pinIt","toolbar=no, scrollbars=no, resizable=no, top=0, right=0, width=750, height=320"); 
    return false; 
}); 
</script> 
+0

Działa bardzo ładnie! –

1

Działa dla mnie idealnie. Skrypt

<script> 
    function pinIt() 
    { 
     var e = document.createElement('script'); 
     e.setAttribute('type','text/javascript'); 
     e.setAttribute('charset','UTF-8'); 
     e.setAttribute('src','https://assets.pinterest.com/js/pinmarklet.js?r='+Math.random()*99999999); 
     document.body.appendChild(e); 
    } 
    </script> 

nazywają go z

<a href="javascript:pinIt();">Pin</a> 
4

Oto co pracował dla mnie:

<a href="//www.pinterest.com/pin/create/button/" data-pin-do="buttonPin" data-pin-custom="true"><img src="../img/custompinint.png" /></a> 

atrybut data-pin-custom to co wziąłem z Pinterest documentation.

Mam nadzieję, że to pomoże.

+0

To powinna być obecnie zaakceptowana odpowiedź. Pinterest dodał obsługę tego ('data-pin-custom'), ponieważ była to najczęściej żądana funkcja. –

+0

To działało dla mnie, z wyjątkiem tego, że użyłem linku tekstowego, a nie "". – scottperezfox