使Pinterest Profile Widget安全

时间:2015-04-03 11:40:36

标签: https pinterest

我使用以下页面创建Pinterest Profile小部件: https://business.pinterest.com/en/widget-builder#do_embed_user

问题是,当窗口小部件显示图像时,使用非安全链接。我需要在安全页面上显示小部件,因此需要它们为https://

我有什么想法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

好的,经过一番研究后,我做了一个非常强烈的黑客来完成这项工作。 Pintrest确实提供https内容,只是由于某些原因他们没有将其包含在他们的API中。所以我逐步完成了API,找到了属性设置器,它将属性设置为API创建的任何元素。

无论如何..这里是小提琴:https://jsfiddle.net/nanff007/1/(确保https)

这是执行魔术的代码......

  

这是一种解决方法/黑客或任何你想要的方式。它不会永远有效。它可能也不适用于所有国家,因为akamai网址可能会改变。最好的选择是用Pintrest提出请求票。

(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);
}());

答案 1 :(得分:0)

只需删除https:并以//作为链接的开头。 例如:

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

删除>之前的空格之后<在上面的例子中