2015-04-03 9 views
5

ich die unten Seite bin mit einem Pinterest Profil-Widget erstellen: https://business.pinterest.com/en/widget-builder#do_embed_userStellen Pinterest Profil Widget Sichere

Das Problem ist, dass, wenn das Widget zeigt die Bilder nicht sichere Verbindungen verwenden. Ich muss das Widget auf einer sicheren Seite anzeigen, so müssen sie https sein: //

Irgendwelche Ideen, wie ich darüber gehen kann?

+0

Ist Ihre Website 'http : // 'oder' https: // '? –

+0

Die gesamte Website ist https: // – a1anm

Antwort

1

Ok, nach ein bisschen Forschung habe ich einen ziemlich intensiven Hack gemacht, um diese Arbeit zu machen. Pintrest bietet HTTPS-Inhalte an, nur aus irgendeinem Grund haben sie dies nicht in ihre API aufgenommen. Ich bin also durch die API gegangen und habe den Attributsetzer gefunden, der Attribute auf alle Elemente setzt, die die API erstellt.

Wie auch immer .. hier ist die Geige: https://jsfiddle.net/nanff007/1/ (stellen Sie sicher, https)

Und hier ist der Code, der die Magie führt ...

Dies ist eine Abhilfe ist/hacken oder was auch immer Sie möchte es nennen. Es wird nicht für immer funktionieren. Es kann auch nicht in allen Ländern funktionieren, da sich die Akamai-URLs ändern können. Die beste Option wäre, ein Anfrageticket bei Pintrest zu erstellen.

(function() { 
    $('a[data-pin-do]').each(function() { 
     $(this).attr('data-pin-dont', $(this).attr('data-pin-do')); 
     $(this).removeAttr('data-pin-do'); 
    }); 

    var timer = setInterval(function() { 
     for (prop in window) { 
      if (prop.search(/^PIN_/) > -1 && typeof window[prop] != 'boolean') { 
       clearInterval(timer); 
       window[prop].f.set = function (el, att, string) { 
        if(att == 'src' && el.tagName.toLowerCase() == 'img') { 
         string = string.replace(/(^http:\/\/)/i, "https://s-"); 
        } 

        if (typeof el[att] === 'string') { 
         el[att] = string; 
        } else { 
         el.setAttribute(att, string); 
        } 
       }; 

       $('a[data-pin-dont]').each(function() { 
        $(this).attr('data-pin-do', $(this).attr('data-pin-dont')); 
        $(this).removeAttr('data-pin-dont'); 
       }); 

       window[prop].f.init(); 
       break; 
      } 
     } 
    }, 100); 
}()); 
+0

Leider sieht es aus wie Pinterest diesen Hack heute oder gestern gebrochen. –

+0

@KyleMacFarlane Ich habe gerade mein Handy überprüft und es scheint zu funktionieren ... welches Problem haben Sie? –

+0

Ich benutze deinen Hack seit Monaten und es funktionierte bis heute gut. Allerdings konnte ich es beheben, indem ich den Cache in betroffenen Browsern löschte. Was passieren würde war, dass das Widget nicht initialisiert werden konnte und die Konsole einen Haufen 404s auf "/https://log.pinterest.com" protokollierte (beachten Sie den Schrägstrich am Anfang). Die Frage ist, Pinterest nur A/B-Tests oder Rollout ein neues Skript? –

0

entfernen Sie einfach das https: // und mit wie zu Beginn des Link starten. Beispiel:

< a href = "// sub-domain.example.com"> Acme Widgets

Entfernen Sie die Leerzeichen vor> und nach < in dem obigen Beispiel

+0

Dies funktioniert nicht mit dem Pinterest-Widget. – a1anm

+0

https://www.pinterest.com/pinterest/ https anstelle von http hoffe, es wird funktionieren –