我已经搜索了很多,但似乎这不起作用。
在程序中,有一个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代码。所以我只能添加新代码。
我想打开一个新窗口而不是重定向,但是如何停止重定向?
答案 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..
所以我可以告诉你有三种方法可以改变页面。
直接点击文字链接,无需点击事件功能。
点击标记区域的同一行。
单击文本链接但使用onclick功能。 这就是我现在所知道的程序....
所以..在js函数之前我可以附加一些代码来改变页面事件。 我想做的是父窗口是相同的..没有重新加载。点击某个区域可以在新窗口中打开网页。