本文详解如何通过 jquery 的 `$.get()` 正确异步加载外部页面内容,并将其注入基于 jquery ui 的模态确认对话框,避免因异步执行时机不当导致内容未更新的常见错误。
在 Web 开发中,常需在用户执行关键操作(如提交表单、删除记录)前弹出确认对话框,并动态展示来自服务端的上下文信息(例如待确认的地址、订单摘要等)。但初学者易陷入一个典型误区:在异步请求(如 $.get)外部直接使用其返回数据——由于 AJAX 请求是异步的,后续代码会立即执行,而回调函数中的赋值尚未发生,导致变量仍为初始值。
你原始代码的问题核心在于:
var text = "Test";
$.get("confirmaddress.html", function(data) {
text = data; // ✅ 回调内赋值成功
});
// ❌ 此时 text 仍是 "Test" —— $.get 还没完成!
// 后续 dialog 创建逻辑却依赖这个未更新的 text✅ 正确做法是:将依赖外部内容的所有逻辑(包括 DOM 构建与对话框初始化)全部移入 $.get 的成功回调中,确保数据就绪后再执行。
以下是优化后的完整可运行方案(兼容 jQuery + jQuery UI):
来源可信且已做服务端过滤。通过此方案,你的确认对话框即可稳定、安全地集成动态外部内容,同时保持代码清晰、健壮且符合前端最佳实践。