/* Keep this file in ES5 syntax: it must run even when the application cannot. */ (function () { var finished = false; var lastError = ''; var timer; function errorText(error) { return String(error && error.message ? error.message : error || '未知启动错误').slice(0, 300); } function showFailure(error) { if (finished || document.getElementById('mom-startup-error')) return; var box = document.createElement('section'); box.id = 'mom-startup-error'; box.setAttribute('role', 'alert'); box.style.cssText = 'position:fixed;z-index:99999;left:0;right:0;top:0;bottom:0;overflow:auto;background:#fff;color:#0f172a;padding:24px;box-sizing:border-box;font:16px/1.6 sans-serif;'; function line(tag, text) { var element = document.createElement(tag); element.textContent = text; element.style.wordBreak = 'break-word'; box.appendChild(element); return element; } line('h2', '平台未能完成启动'); line('p', '可能是浏览器兼容性或脚本加载失败。请打开检测页,将检测结果提供给管理员。'); line('p', '启动信息:' + errorText(error)); line('p', '浏览器:' + navigator.userAgent); var link = line('a', '打开浏览器检测页'); link.href = document.querySelector('script[data-startup-check]').src.replace(/[^/]*$/, 'browser-check.html'); link.style.cssText = 'display:block;min-height:48px;color:#0369a1;'; var button = line('button', '重新加载'); button.style.cssText = 'min-height:48px;padding:8px 20px;font-size:16px;'; button.onclick = function () { window.location.reload(); }; document.body.appendChild(box); } window.__MOM_STARTUP__ = { finish: function () { finished = true; window.clearTimeout(timer); var box = document.getElementById('mom-startup-error'); if (box) box.parentNode.removeChild(box); }, fail: function (error) { showFailure(error); } }; window.addEventListener('error', function (event) { if (event.message) lastError = errorText(event.message); else if (event.target && event.target.tagName === 'SCRIPT') lastError = '脚本文件加载失败'; }, true); window.addEventListener('unhandledrejection', function (event) { lastError = errorText(event.reason); }); timer = window.setTimeout(function () { showFailure(lastError || '30 秒内未完成初始化;请检查浏览器能力与脚本请求。'); }, 30000); }());