我添加了一个编辑器,用户可以输入他们想要的任何内容,然后我在留言卡下显示输入的文字,因此如果用户输入了Click here
&amp;它的HTML部分是<a href="google.com">Click here</a>
所以当在消息卡下显示这个并点击这里然后它没有重定向到google.com它会转到http://my-website.com/google.com
,因为href值没有任何协议,所以如何将协议添加到其值中,单个消息中可能有多个链接,有些可能有协议,有些则没有。
答案 0 :(得分:0)
将编辑器中的HTML添加到消息卡后,只需循环遍历<a>
链接,并检查每个锚链接的协议。如果没有协议,则添加一个协议。
$('#messageCard').find('a').each(function() {
//get the href value of each anchor element
var hrefValue = $(this).attr('href');
//use regular expression to check if the href contain http:// or
//https://. If not then add http://
if (!hrefValue.match(/^[a-zA-Z]+:\/\//))
{
$(this).attr('href','http://' + hrefValue);
}
});
答案 1 :(得分:0)
让用户在编辑器中输入HTML代码可能不是一个好主意。但如果你坚持这样做,你可以尝试
$(function() {
$('a').each(function() {
if (!$(this).attr("href").startsWith("http")) {
$(this).attr("href", "http://" + $(this).attr("href"));
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="google.com">Click here</a>
&#13;