javascript - 如何使外部链接成为 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)
,问题现已解决。
解决方案
根据@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;
}
)};
)};
推荐阅读
- php - 在php,mysql中插入记录重复
- javascript - 通过网络服务器上的脚本从客户端浏览器向本地 URL/IP 发送请求
- excel - Excel 搜索 - 发现多个单词以逗号分隔打印
- node.js - Flutter 推送通知仅在应用程序处于后台时有效
- java - 如何处理 Java 应用程序的服务器崩溃
- node.js - 在 TypeScript 中解析并导入所有模块后执行代码
- android - Android 通过 popBackStack 返回上一个片段
- mongodb - 作为 Windows 服务运行的 Mongod vs MongoDB 服务器
- r - 根据 r 中列中的常见字符组合数据帧的行
- reactjs - 是否有引导新 REACT 应用程序的快捷方式?