我有一个关于 https 协议的站点,它通过 ajax JSONP 使用 google load feed API 的 wordpress rss feed,然后通过返回的 json 对象迭代以注入内容
问题是内容节点具有我想要包含的 html,例如海报插入的图像:
"Title":"post title",
"Content":"<p><img src='http://theothersite.com'/> this is an example post</p>"
当我使用 each() 遍历 json 时,会附加内容 html,并向浏览器抛出不安全的内容警告,因为图像 src 是 http 协议
$.each(json.responseData.feed.entries, function(arrayID, News) {
for(var i = 0; i < News.categories.length; i++)
{
html = '<li class="post news"><h3><a target="_blank" href="'+News.link+'">'+News.title+'</a></h3>';
// HERES WHERE ATTENTION NEEDED
html +='<div class="excerpt">'+News.content+'</div></li><hr>';
$("#newsList ul").append(html);
我不知道如何解析节点内容的 src 值,并将任何 src 替换为具有 https 作为协议的新 src,同时保留所有其他字符串数据
我已经尝试过匹配,它可以很好地将 src 放入变量中,但是它没有占用字符串的其余部分,所以当我替换它时没有保留内容
var iMatches = News.content.match(/src=\"(.+?)\"/igm); //alert(iMatches);
if (iMatches) {
News.content.replace(/src=\"http:(.+?)\"/igm, /src=\"https:(.+?)\"/igm);}
我也尝试替换为 replace('http:', 'https:') 但这也不起作用
一如既往,任何帮助表示赞赏