检查链接是否包含javascript

时间:2014-03-26 06:24:05

标签: javascript jquery string

如何在JavaScript / jQuery中判断链接是否为Javascript?

例如:

<a href="javascript:someFunction();">Trigger</a>

尝试确保脚本仅记录链接,而不记录javascript,锚点等。

基本上我需要捕获链接的href,因为我。通过它们(已经完成)我只需要一个可靠的方法来检查该变量以查看它是否是javascript,即函数w / e

var rand = function() {
    return Math.random().toString(36).substr(2);
};

$(function(){
    $('#lhcb a').each(function() {
        var rawlink = $(this).attr("href");
        var link = encodeURIComponent( rawlink );
        var token = rand();
        var href = $(this).prop('href');
        var proceed = $.get( "lhc/link.php?link=" + link + "&a=c", function( data ) {
            if ( data == 1 ) {
                return true;
            } else {
                return false;
            }
        });
        if ( href.match("^javascript:") ) {
            proceed = false;
        }
        if ( rawlink.charAt(0) != '#' ) {
            if ( proceed ) {
                $(this).after( " <span style='font-size:xx-small;'>( Hits: <span id='" + token + "'></span> )</span>" );
                    $.get( "lhc/link.php?link=" + link + "&a=q", function( data ) {
                        $('#' + token).html(data);
                    });
                $(this).attr( "href", "lhc/link.php?link=" + link + "&a=g" );
            }
        }

    });
});

这就是我所拥有的,但如下所述,它将无法看到href是否只是没有JavaScript声明的函数。

1 个答案:

答案 0 :(得分:0)

一个小脚本可以提供帮助。我写了一个样本:

http://jsfiddle.net/qXkHX/

var normalLinks = [];
$("a").each(function(i) {
    var a = $(this);
    var href = $.trim(a.attr("href"));
    if(href.indexOf("javascript:") !== 0) normalLinks.push(href);
});

$("#result").text(normalLinks.join(","));

它遍历文档中的锚点,并推送每个不以javascript:开头的链接。也许这有帮助。