如何在新窗口中打开链接?
我有一个特定的链接点击处理程序,我想要做类似于以下内容:
window.location = url
我需要这个实际上在新窗口中打开的URL,但我该怎么做?
你可以喜欢:
window.open('url', 'window name', 'window settings')
jQuery的:
$('a#link_id').click(function(){ window.open('url', 'window name', 'window settings'); return false; });
您也可以将target
设置为_blank
。
以下是如何强制点击处理程序中的目标:
$('a#link_id').click(function() { $(this).attr('target', '_blank'); });
你将需要使用window.open(url);
引用:
http://www.htmlcodetutorial.com/linking/linking_famsupp_120.html
http://www.w3schools.com/jsref/met_win_open.asp
你也可以使用jquery prop()方法。
$(function(){ $('yourselector').prop('target', '_blank'); });
<a href="myurl.html" target="_blank">My Link</a>
什么问题? 没有Javascript需要…
我刚刚find了一个有趣的解决这个问题。 我正在创build包含基于Web服务返回信息的跨度。 我考虑尝试在链接周围添加链接,以便如果点击它,“a”将捕获点击。
但我试图捕捉点击跨度…所以我想为什么不做这个时,我创造了跨度。
var span = $('<span id="something" data-href="'+url+'" />');
我然后绑定一个点击处理程序的跨度创build一个基于'data-href'属性的链接:
span.click(function(e) { e.stopPropagation(); var href = $(this).attr('data-href'); var link = $('<a href="http://' + href + '" />'); link.attr('target', '_blank'); window.open(link.attr('href')); });
这成功地让我点击一个跨度,并打开一个合适的url的新窗口。
这个解决scheme也考虑到url是空的,禁用(灰色)空链接的情况。
$(function() { changeAnchor(); }); function changeAnchor() { $("a[name$='aWebsiteUrl']").each(function() { // you can write your selector here $(this).css("background", "none"); $(this).css("font-weight", "normal"); var url = $(this).attr('href').trim(); if (url == " " || url == "") { //disable empty link $(this).attr("class", "disabled"); $(this).attr("href", "javascript:void(0)"); } else { $(this).attr("target", "_blank");// HERE set the non-empty links, open in new window } }); }
a.disabled { text-decoration: none; pointer-events: none; cursor: default; color: grey; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <a name="aWebsiteUrl" href="http://www.baidu.com" class='#'>[website]</a> <a name="aWebsiteUrl" href=" " class='#'>[website]</a> <a name="aWebsiteUrl" href="http://www.alibaba.com" class='#'>[website]</a> <a name="aWebsiteUrl" href="http://www.qq.com" class='#'>[website]</a>
请注意是否要在click事件的事件处理函数内部执行AJAX请求 。 Chrome(也可能是其他浏览器)出于某种原因不会打开新的标签页/窗口。
这不是一个很好的修复,但它的工作原理:
CSS:
.new-tab-opener { display: none; }
HTML:
<a data-href="http://www.google.com/" href="javascript:">Click here</a> <form class="new-tab-opener" method="get" target="_blank"></form>
使用Javascript:
$('a').on('click', function (e) { var f = $('.new-tab-opener'); f.attr('action', $(this).attr('data-href')); f.submit(); });
现场示例: http : //jsfiddle.net/7eRLb/
Microsoft IE不支持作为第二个参数的名称。
window.open('url', 'window name', 'window settings');
问题是window name
。 这将工作:
window.open('url', '', 'window settings')
微软只允许以下参数,如果使用该参数:
- _空白
- _媒体
- _parent
- _search
- _自
- _最佳
检查这个微软网站