我使用以下页面创建Pinterest Profile小部件: https://business.pinterest.com/en/widget-builder#do_embed_user
问题是,当窗口小部件显示图像时,使用非安全链接。我需要在安全页面上显示小部件,因此需要它们为https://
我有什么想法可以解决这个问题吗?
答案 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
删除>之前的空格之后<在上面的例子中