全国企业信息查询
供求信息发布平台
`;
// 加载验证码核心脚本
function loadCaptchaScript() {
if (typeof window.ThinkCaptcha !== 'undefined') {
createCaptchaInstance();
return;
}
var scriptUrl = '/Public/static/home/js/captcha.core.js?v=2.0';
var script = document.createElement('script');
script.src = scriptUrl;
script.onload = createCaptchaInstance;
script.onerror = function() {
console.error('Failed to load captcha script');
captchaContainer.innerHTML = '验证码加载失败
';
};
document.head.appendChild(script);
}
function createCaptchaInstance() {
try {
window.captchaModals[modalId] = new ThinkCaptcha({
container: config.id,
apiBaseUrl: config.api_base || '/captcha',
theme: config.theme || 'light',
debug: config.debug || false,
onSuccess: function(token) {
// 验证成功,1秒后自动关闭
setTimeout(function() {
captchaModalClose(modalId);
}, 1000);
// 触发成功事件
var event = new CustomEvent('captcha.modal.success', {
detail: {
token: token,
modalId: modalId
}
});
document.dispatchEvent(event);
// 执行自定义回调
if (typeof window[config.callback] === 'function') {
window[config.callback](token, modalId);
}
},
onError: function(error) {
console.error('Captcha error:', error);
var event = new CustomEvent('captcha.modal.error', {
detail: {
error: error,
modalId: modalId
}
});
document.dispatchEvent(event);
},
onRefresh: function() {
var event = new CustomEvent('captcha.modal.refresh', {
detail: { modalId: modalId }
});
document.dispatchEvent(event);
}
});
} catch (e) {
console.error('Failed to create captcha instance:', e);
captchaContainer.innerHTML = '验证码初始化失败
';
}
}
loadCaptchaScript();
}
// 点击遮罩层关闭
document.addEventListener('click', function(e) {
if (e.target.classList.contains('captcha-modal-overlay')) {
var modal = e.target.closest('.captcha-modal');
if (modal) {
var modalId = modal.id.replace('Modal', '');
captchaModalClose(modalId);
}
}
});
// ESC键关闭
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') {
var modals = document.querySelectorAll('.captcha-modal[style*="display: block"]');
modals.forEach(function(modal) {
var modalId = modal.id.replace('Modal', '');
captchaModalClose(modalId);
});
}
});
// 如果配置了自动显示,则在DOM加载完成后显示
document.addEventListener('DOMContentLoaded', function() {
// 查找所有需要自动显示的验证码
var widgets = document.querySelectorAll('.think-captcha-widget');
widgets.forEach(function(widget) {
try {
var config = JSON.parse(widget.getAttribute('data-config') || '{}');
if (config.auto_show) {
setTimeout(function() {
captchaModalShow(config.id);
}, 500);
}
} catch (e) {
console.error('Error parsing captcha config:', e);
}
});
});
公开资讯滚动更新。建议通过站内栏目继续浏览,核对最新条目。