将JSON编码的feed value's image src协议http:替换为https:
Replace JSON encoded feed value's image src protocol http: with https:
我有一个关于https协议的网站,通过ajax JSONP通过google加载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被追加,并向浏览器抛出不安全的内容警告,因为image 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:'),但这也不起作用
一如既往,感谢您的帮助
String.replace
方法不改变原始字符串,而是返回一个新字符串。考虑到这一点,您需要使用:
News.content = News.content.replace(...);
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace 相关文章:
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- Javascript:使用绝对路径设置img src
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- Javascript将图像src更改为淡入淡出
- 如何使用Angular动态添加iframe-src
- //而不是在src=“”上使用http://"属性
- 使用:new Image()控制加载html.src=html_URL
- 无法使用nodeJS在html中设置Image src
- 如何动态更改脚本src
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 在字符串中查找所有图像 src URL 并存储在数组中
- Mozilla没有;t在附加视频src后触发视频后台事件
- 使用AngularJs时,如何在img标记具有src-attr时设置数据src
- 插入“;img src"在javascript中
- 如何在使用JavaScript或jQuery刷新父页面后保留iframe-src
- javascript查找协议,域,加上src标记中带有regexp的第一个斜杠,替换为空字符串
- 在src URL中没有协议的脚本会出什么问题?
- 将JSON编码的feed value's image src协议http:替换为https:
- 让src属性使用和页面相同的协议