【发布时间】:2012-05-04 11:39:56
【问题描述】:
我想用链接替换 url,以下代码可以正常工作,但它会损害 iframe(例如 youtube),有什么建议吗?thx
$(".css___div p").html($(".css___div p").html().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>"));
更新: 实际上我正在做一个 bbs,有时人们想发布一个 youtube,所以他们会在帖子中制作一个 iframe……例如:
check out my mv!!!
<iframe width="560" height="315" src="http://www.youtube.com/embed/F1C9zIA50Eo" frameborder="0" allowfullscreen></iframe>
http://youtu.be/F1C9zIA50Eo
我想把http://youtu.be/F1C9zIA50Eo 变成一个链接,而不是http://www.youtube.com/embed/F1C9zIA50Eo,有什么提示吗?谢谢
更新2: 最后我做了一个愚蠢的技巧来避免代码伤害iframe:
var var___iframeSRC=$(".css___funk .css___div p iframe").attr("src");
$(".css___div p").html($(".css___div p").html().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>"));
$(".css___funk .css___div p iframe").attr("src",var___iframeSRC);
更新3: 我把所有的 src 放到一个数组中......但这仍然是一个愚蠢的把戏,欢迎任何建议
arr___iframeSrc=new Array();
$(".css___funk .css___div p iframe").each(function(){
arr___iframeSrc.push($(this).attr("src"));
});
$(".css___funk .css___div p").html($(".css___funk .css___div p").html().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>"));
for(var i=0;i<arr___iframeSrc.length;i++){$(".css___funk .css___div p iframe").eq(i).attr("src",arr___iframeSrc[i]);}
【问题讨论】:
-
您的更新不是正确的解决方案。如果有人发布 2 个(或更多)不同的 iframe,会发生什么?
-
是的...所以,任何建议... T.T"
标签: javascript jquery url iframe replace