在href=";上停止javascript重定向;javascript:void";

在href=";上停止javascript重定向;javascript:void";,javascript,redirect,Javascript,Redirect,我一直在使用一个脚本,在“onmouseevent”触发器上加上redirect.php前缀。但我不希望它出现在某些网站上,如谷歌等。请查看下面的代码: var matchavailable = 0; var disallowinks = "google,microsoft,yahoo"; $n("a").mousedown(function () { var linkArray = disallowlinks.split(','); for (var i = 0; i <

我一直在使用一个脚本,在“onmouseevent”触发器上加上redirect.php前缀。但我不希望它出现在某些网站上,如谷歌等。请查看下面的代码:

var matchavailable = 0;
var disallowinks = "google,microsoft,yahoo";
$n("a").mousedown(function () {
    var linkArray = disallowlinks.split(',');
    for (var i = 0; i < linkArray.length; i++) {
        if ($n(this).attr('href').indexOf(linkArray[i]) > 0) {
            matchavailable = 1;
            break;
        }
        else {
            matchavailable = 0;
        }
    }

    if (matchavailable == 0) {
        if ($n(this).hasClass('linked')) {
        }
        else
        {
           $n(this).attr('href', "http://yoursite.com/redirect.php?q=" + encodeURIComponent($n(this).attr('href')));
           $n(this).attr('target', '_blank');
           $n(this).addClass("linked");
        }


    }

});
var matchavailable=0;
var disallowinks=“谷歌、微软、雅虎”;
$n(“a”).mousedown(函数(){
var linkArray=disallowlinks.split(',');
对于(var i=0;i0){
matchavailable=1;
打破
}
否则{
matchavailable=0;
}
}
如果(匹配可用==0){
if($n(this).hasClass('linked')){
}
其他的
{
$n(this.attr('href',”http://yoursite.com/redirect.php?q=“+encodeURIComponent($n(this).attr('href'));
$n(this.attr('target','u blank');
$n(本).addClass(“链接”);
}
}
});
到目前为止,javascript在所有锚标记上都运行良好。就是这样,我在我的网站上显示了一个弹出窗口,当我试图关闭这个弹出窗口(X标记了位置)时,redirect.php也会加上前缀

所以我的问题是,我们如何不允许脚本在值以“javascript”开头的锚标记上运行

例如,我不希望它在以下情况下运行:

<a href="javascript:void"> or <a href="any random parameter">

我该怎么办?如果能得到一些帮助就太好了

var disallowinks=“谷歌、微软、雅虎、javascript:”?@杰夫曼你读过问题,还是只是标题?顺便说一句,将
javascript:
添加到排除的字符串列表(正如我上面所建议的)与您的起点一样糟糕,即不检查url中字符串的位置<代码>http://mysite.com/i_like_google.php
将不会被传递到
redirect.php
,因为此url中
google
的索引是
>0