是否可以停止重定向到另一个链接页面?

时间:2009-08-15 16:51:40

标签: javascript jquery

我已经搜索了很多,但似乎这不起作用。

在程序中,有一个jquery ready函数可以使click事件重定向。

if($.isFunction(link.attr('onclick'))){link.click();return false;}
else{document.location.href=link.attr('href');}

所以在超链接中,有2个事件可以使这个页面重定向到新页面,一个是<a href="aaa">Link1</a>,另一个是onclick事件(抱歉,我仍然感到困惑,首先执行)。

不幸的是,我无法删除jquery代码。所以我只能添加新代码。

我想打开一个新窗口而不是重定向,但是如何停止重定向?

3 个答案:

答案 0 :(得分:1)

我不明白,“只附加新代码”是什么意思?如果这意味着您无法更改onclick处理程序或上述代码,则解决方案如下:

确定您希望更改行为的链接,删除onclick处理程序。

$(".someClass a").unbind('click');

添加新的onclick处理程序:

$('.someclass a').bind(function(e){
   var url = $(e.target).attr('href');
   window.open(url, 'width=200');
}));

所有这些代码都应在页面加载时执行,并且您希望覆盖的所有链接都在DOM中。

$(document).ready(function(){

     //unbind links ...
     $(".someClass a").unbind('click');
     //bind with changed onclick handler
     $('.someclass a').bind(function(e){
       var url = $(e.target).attr('href');
       window.open(url, 'width=200');
     }));

});

答案 1 :(得分:0)

如果我理解正确,那jQuery块只运行onclick如果存在,否则它会模拟正常的超链接点击。

因此,如果您希望它只是在新窗口中打开,并且您无法更改jQuery,则可以选择添加onclick事件:

<a href="aaa" onclick="window.open(this.href);return false;">Link1</a>

这应该在新窗口中打开onclick时执行。

答案 2 :(得分:0)

感谢您的帮助。

我无法删除重定向jquery功能,因为policy ...之前的程序会在父进程中进行一些点击或超链接重定向页面。但是有些页面需要在新窗口中更改才能打开。

让我详细解释一下

有两种类型的文字链接

<tr><td>first</td><td><a href="aaa">link1</a></td><td>3rd</td></tr>
<tr><td>first</td><td><a href="aaa" onclick="fun1()">link2</a></td><td>3rd</td></tr>

我既不明白为什么他们这样写......但是很抱歉我不能改变所有的HTML

我唯一能做的就是追加新功能......

所以如果用户直接点击超链接文本,对我来说很容易,我可以将目标追加到_blank。 但我们也有事件功能更改页面事件用户将鼠标移动到记录并单击。也可以重定向新页面。

这就是为什么这个功能......

if($.isFunction(link.attr('onclick'))){link.click();return false;} // I regard it for onclick function 
else{document.location.href=link.attr('href');} // it's for tag click..

所以我可以告诉你有三种方法可以改变页面。

  1. 直接点击文字链接,无需点击事件功能。

  2. 点击标记区域的同一行。

  3. 单击文本链接但使用onclick功能。 这就是我现在所知道的程序....

  4. 所以..在js函数之前我可以附加一些代码来改变页面事件。 我想做的是父窗口是相同的..没有重新加载。点击某个区域可以在新窗口中打开网页。