繁体   English   中英

检查链接是否包含javascript

[英]Check if link contains javascript

在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声明的函数。

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

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:开头的链接。 也许这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM