我有一个HTML <a>
标签如下:
<a id="ext_link" href="www.google.com">GOOGLE HOME</a>
和我使用JQUERY打开链接在一个新的窗口。JQUERY代码如下:
$(document).ready(function(){
$("#ext_link").click(function(e){
e.preventDefault();
window.open($(this).attr("href"));
});
});
当我使用<a id="ext_link" href="http"//www.google.com">GOOGLE HOME</a>
它工作正常,但当我使用<a id="ext_link" href="www.google.com">GOOGLE HOME</a>
一个新的窗口打开,地址栏包含http://localhost/app/www.google.com
这是错误的地址明显…
如何防止开头自动添加http://localhost/app/
您可以使用正则表达式来测试您的href
是否以http://
或https://
开头,如果不是,则添加http://
:
$(document).ready(function(){
$("#ext_link").click(function(e){
e.preventDefault();
var url = $(this).attr("href");
if(!/^(http|https):'/'//.test(url)){
url = "http://" + url;
}
window.open(url);
});
});
检查href是否不包含http://,并添加如下:
$(document).ready(function(){
$("#ext_link").click(function(e){
e.preventDefault();
var url = $(this).attr("href");
if(!/^https?:'/'//.test(url)){
url = "http://" + url;
}
window.open(url);
});
});
您可以添加更多协议,但https?://
应该足够了。或者您可以使用//
,因为许多现代浏览器都使用它并获得适当的协议。