【发布时间】:2015-04-29 22:13:45
【问题描述】:
我有一个需求,如果用户点击一个链接,我希望当前页面重定向到 href 属性值,同时打开一个包含当前页面链接和添加参数的新窗口。
我拥有的 Jquery 脚本如下。
jQuery(document).ready(function() {
$( "#clickMeDiv" ).click(function(e) {
e.preventDefault();
refLink = jQuery(this).attr('href');
location.href = refLink;
window.open(window.location.protocol + "//" + window.location.host + '?param=1', "_blank", '', false);
});
});
带有链接的HTML如下:
<a id="clickMeDiv" href="http://www.google.com" target="_blank">
Click Me
</a>
这在 Chrome、firefox、Safari(桌面)上运行良好,但在 IE 8 和 IE 11 中打开了一个额外的窗口。我无法在其他 IE 版本中进行测试。我的猜测是它在所有 IE 中的行为都相同。
你也可以查看http://jsfiddle.net/chirping/nmtkct26/1/上的JS
这在 iOS 上的 Chrome 上也有点奇怪,尽管 iOS 上的 Safari 可以正常工作。
感谢您的帮助?
【问题讨论】:
-
这一行应该做什么? location.href = refLink;
-
重定向到 refLink
-
@SonaliKapoor 你可以试试这个吗? jQuery(document).ready(function() { $( document ).on('click', '#clickMeDiv', function(e) { //e.preventDefault(); refLink = jQuery(this).attr(' url'); window.location.href = encodeURIComponent('www.yahoo.com'); window.open(window.location.protocol + "//" + window.location.host + '?param=1', " _blank", '', false); }); });还将 href='www.google.com' 替换为 href='#' 并添加另一个属性 url='www.google.com'。这只是一种解决方法。
-
@Sushil - 同样的问题,现在打开第一个窗口,当前 + #
-
所以你的链接现在是 href='#' 和 url='www.google.com' 对吗?在 jquery 中,我选择的是 url 属性而不是 href。你错过了那部分吗??