使用Jquery更改外部函数中的链接

时间:2009-10-22 21:17:38

标签: javascript jquery html

我在网站上有一些链接,我需要指向一个告诉用户他们要离开网站的页面。所有这些链接上都有一个onClick函数,normall触发一个警告告诉他们他们要离开网站 例如,这通常会触发警报:

<a href="http://www.example.com" onclick="return displayWarning(1, this);">Example</a>

我要做的是向该displayWarning()函数添加功能,这样如果它传递整数'1'作为参数,它会将用户带到新页面,例如: http://www.mySite.com/warning?url=http://www.example.com

现在我正在使用它:

if(msg == 0) {   
window.location.href='/warning?url='+($(this).href);  
}

我也试过这个,看看我是否可以在加载时更改它们,但似乎遇到了同样的问题:

$(document).ready(function(){   
$("a[onClick='return displayWarning(1, this);']").attr('href', '/warning?url='+$(this).attr('href'));
}); 

但是,url没有被正确定义,因为我很确定$(this)的上下文没有设置为我试图调用它的方式。

我已经看到下面提到的类似问题,但它们似乎没有解决我的问题,因为他们中的大多数都使用链接类或只是将所有链接更改为某个值。

How to change the href for a hyperlink using jQuery jQuery attr href, why isn't it working?

感谢。

3 个答案:

答案 0 :(得分:1)

我认为这就是你想要的:

location.href='/warning?url='+encodeURIComponent(location.href);  

答案 1 :(得分:0)

我无法理解你想要实现的目标......为什么不用你已经这个作为参数在你的displayWarning函数中添加一个if?

function displayWarning(parameter, anchor){
    if(parameter == 1){
        $(anchor).attr("href", "http://example.com");
    }    
}

答案 2 :(得分:0)

谢谢大家,但我最终回答了这个问题。事实证明,我正在使用的函数内置了一个对象(我没有写它),这使我能够获取href值。 但是,我想知道是否有更快的方法来实现它。