fix: 修复 Geetest GT4 备用版本缺少 onClose 方法的错误

- 在 gt4.js 备用实现中添加 onClose 方法
- 避免 captcha.onClose is not a function 错误
- 保持与正式版 API 的兼容性
This commit is contained in:
2026-01-20 18:33:12 +08:00
parent dcaa19f5bc
commit e5f0acc20f

View File

@@ -1,46 +1,50 @@
/* Geetest GT4 - Local Fallback */ /* Geetest GT4 - Local Fallback */
(function() { (function() {
'use strict'; 'use strict';
// 简化的 Geetest 备用实现 // 简化的 Geetest 备用实现
window.initGeetest4 = function(config, callback) { window.initGeetest4 = function(config, callback) {
console.warn('Geetest GT4 本地备用版本 - 功能受限'); console.warn('Geetest GT4 本地备用版本 - 功能受限');
// 创建一个简单的验证码替代 // 创建一个简单的验证码替代
var captcha = { var captcha = {
appendTo: function(selector) { appendTo: function(selector) {
var container = document.querySelector(selector); var container = document.querySelector(selector);
if (container) { if (container) {
container.innerHTML = '<div style="padding: 20px; border: 1px solid #ddd; text-align: center; background: #f9f9f9;">' + container.innerHTML = '<div style="padding: 20px; border: 1px solid #ddd; text-align: center; background: #f9f9f9;">' +
'<p>验证码服务暂时不可用,请稍后重试</p>' + '<p>验证码服务暂时不可用,请稍后重试</p>' +
'<button type="button" onclick="this.parentNode.parentNode.style.display=\'none\'" style="padding: 5px 15px;">跳过验证</button>' + '<button type="button" onclick="this.parentNode.parentNode.style.display=\'none\'" style="padding: 5px 15px;">跳过验证</button>' +
'</div>'; '</div>';
} }
return this; return this;
}, },
onReady: function(fn) { onReady: function(fn) {
setTimeout(fn, 100); setTimeout(fn, 100);
return this; return this;
}, },
onSuccess: function(fn) { onSuccess: function(fn) {
// 模拟成功回调 // 模拟成功回调
return this; return this;
}, },
onError: function(fn) { onError: function(fn) {
return this; return this;
}, },
getValidate: function() { onClose: function(fn) {
return { // 备用版本不支持关闭事件,但提供空实现避免错误
lot_number: 'fallback_' + Date.now(), return this;
captcha_output: 'fallback_output', },
pass_token: 'fallback_token', getValidate: function() {
gen_time: Date.now() return {
}; lot_number: 'fallback_' + Date.now(),
} captcha_output: 'fallback_output',
}; pass_token: 'fallback_token',
gen_time: Date.now()
if (typeof callback === 'function') { };
callback(captcha); }
} };
};
if (typeof callback === 'function') {
callback(captcha);
}
};
})(); })();