首页 > 解决方案 > 如何使外部链接成为 jQuery 规则的例外

问题描述

我有一个将外部页面(从我的网络服务器)加载到div索引中的 jquery 脚本。问题是,单击时完全忽略了指向我的网络服务器之外的外部站点的链接

$(window).on('load', function() {
    $("#content").load("content/index_content.php");

    else{
    $(document).on('click', 'a', function(e) {
        if($(this).is(".ext")) return;

        else{
        e.preventDefault();
        $("#nav div").removeClass("active");
        $(this).children("div").addClass("active");
        $('#content').load($(this).attr('href'));
        return false;
        }    
    )};
)};

单击任何指向外部页面的链接都不会产生任何结果。当单击外部链接时,如何使用户被重定向或打开一个附加选项卡/窗口?

编辑 1:我附加了原始代码以添加if语句,但现在它产生了 CORS 错误 编辑 2:在块if else内移动语句$(document),问题现已解决。

标签: javascriptjqueryhtml

解决方案


根据@Rory McCrossan 的回答,该if语句现在检查在$(document)块内单击的链接是否以 http:// 开头,而不是像我在编辑原始问题时那样给每个链接一个类并检查它

$(window).on('load', function() {
    $("#content").load("content/index_content.php");

    $(document).on('click', 'a', function(e) {
        if($('a[href^="http://"]')) return;

        else{
        e.preventDefault();
        $("#nav div").removeClass("active");
        $(this).children("div").addClass("active");
        $('#content').load($(this).attr('href'));
        return false;
        }    
    )};
)};

推荐阅读