为什么window.open会预先设置默认网址?

时间:2014-06-18 04:59:35

标签: javascript jquery html

代码

<a href="www.someurl.com" id="equipment_url_readonly">www.someurl.com</a>

$(document).on('click','#equipment_url_readonly', function(event) {
    event.preventDefault();
    var url = $(this).attr('href');
    console.log(url); //It console logs correctly the url
    window.open(url,"_blank");
});

但是每当我点击锚标签时,它都会预先设置父标记的网址  例如,我当前有该网址的网页是www.mycurrentpage.com/this-page。当我点击该链接时,它会打开一个新窗口,其网址为:

www.mycurrentpage.com/this-page/www.someurl.com

知道这是怎么回事吗?

3 个答案:

答案 0 :(得分:3)

正如评论中所提到的,问题是您的锚不包含绝对URL,因为它错过了协议(即“http://”或甚至“//”)。

这应该解决它:

<a href="//www.someurl.com" id="equipment_url_readonly">www.someurl.com</a>

以上内容适用于安全页面和非安全页面。

答案 1 :(得分:1)

您可以在没有任何Javascript的情况下完成打开新窗口。

<a href="http://www.someurl.com" target=_blank>www.someurl.com</a>

答案 2 :(得分:0)

尝试下面的内容,我认为这足以达到您的目的。希望它会有所帮助。

您必须在网址前使用http:////

<a href="javascript:void(0);" onclick="window.open('http://www.someurl.com', '_blank');" >www.someurl.com</a>