This commit is contained in:
parent
c72bee42fd
commit
083c3569e2
|
@ -45,7 +45,47 @@ function SuccessContent() {
|
|||
}
|
||||
|
||||
try {
|
||||
window.close();
|
||||
// 检查历史记录状态
|
||||
const historyLength = window.history.length;
|
||||
console.log(`历史记录长度: ${historyLength}`);
|
||||
|
||||
if (historyLength > 1) {
|
||||
console.log("检测到历史记录,尝试返回上一页");
|
||||
// 如果有历史记录,往前跳转两级
|
||||
window.history.go(-2);
|
||||
|
||||
// 设置一个短暂的延迟,检查是否成功跳转
|
||||
setTimeout(() => {
|
||||
// 如果页面仍然存在,可能跳转失败,尝试其他方法
|
||||
if (document.visibilityState !== "hidden") {
|
||||
console.log("返回上一页可能失败,尝试返回一级");
|
||||
window.history.back();
|
||||
}
|
||||
}, 200);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
console.log("无历史记录,尝试关闭窗口");
|
||||
// 如果没有历史记录,尝试关闭窗口
|
||||
// 尝试多种方法关闭窗口
|
||||
const isOpener = window.opener && !window.opener.closed;
|
||||
|
||||
if (isOpener) {
|
||||
// 如果是从另一个窗口打开的,尝试通知父窗口
|
||||
try {
|
||||
// 只有在同源的情况下才能访问 opener
|
||||
window.opener.focus();
|
||||
console.log("尝试聚焦父窗口");
|
||||
} catch (e) {
|
||||
console.log("无法访问opener,可能是跨域限制", e);
|
||||
}
|
||||
}
|
||||
|
||||
// 尝试关闭窗口
|
||||
console.log("尝试关闭窗口");
|
||||
const closingAttempt = window.close();
|
||||
console.log("关闭窗口结果:", closingAttempt);
|
||||
|
||||
// 设置一个短暂的延迟,检查页面是否仍然打开
|
||||
setTimeout(() => {
|
||||
|
@ -71,6 +111,20 @@ function SuccessContent() {
|
|||
}
|
||||
};
|
||||
|
||||
// 获取关闭页面的提示文本
|
||||
const getCloseInstructions = () => {
|
||||
const hasHistory = window.history.length > 1;
|
||||
|
||||
if (hasHistory) {
|
||||
return "将返回之前的页面";
|
||||
} else {
|
||||
return "请点击浏览器右上角的 × 关闭此页面";
|
||||
}
|
||||
};
|
||||
|
||||
// 用于调试的历史记录信息
|
||||
const historyInfo = `历史记录长度: ${window.history.length}`;
|
||||
|
||||
return (
|
||||
<div className="flex flex-col items-center">
|
||||
<div
|
||||
|
@ -88,12 +142,26 @@ function SuccessContent() {
|
|||
{redirectUrl ? "即将返回应用..." : "请关闭当前页面返回应用"}
|
||||
</p>
|
||||
|
||||
{closeAttempted && !redirectUrl && (
|
||||
<p className="mt-2 text-sm text-center text-gray-400">
|
||||
{getCloseInstructions()}
|
||||
</p>
|
||||
)}
|
||||
|
||||
{process.env.NODE_ENV === "development" && (
|
||||
<p className="mt-2 text-xs text-center text-gray-500">{historyInfo}</p>
|
||||
)}
|
||||
|
||||
<button
|
||||
onClick={handleClose}
|
||||
className="flex items-center justify-center w-full mt-8 px-4 py-3 text-white bg-[#FF669E] rounded-md hover:bg-[#FF4A8E] transition-colors"
|
||||
>
|
||||
<FiArrowLeft className="w-5 h-5 mr-2" />
|
||||
{redirectUrl ? "立即返回" : "关闭页面"}
|
||||
{redirectUrl
|
||||
? "立即返回"
|
||||
: window.history.length > 1
|
||||
? "返回上一页"
|
||||
: "关闭页面"}
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue