JJJJJllll commited on
Commit
45056f2
·
1 Parent(s): 291d3ab
Files changed (1) hide show
  1. app.py +23 -35
app.py CHANGED
@@ -109,53 +109,41 @@ with gr.Blocks(
109
  ) as demo:
110
 
111
  gr.HTML("""
112
- <style>
113
- #dark-loader {
114
- position: fixed;
115
- inset: 0;
116
- background: #0b1020;
117
- z-index: 2147483647; /* 顶层 */
118
- opacity: 1;
119
- transition: opacity .3s ease;
120
- }
121
- #dark-loader.hidden { opacity: 0; pointer-events: none; }
122
- </style>
123
- <div id="dark-loader"></div>
124
  <script>
125
  (function(){
126
- const cover = document.getElementById('dark-loader');
127
- if (!cover) return;
128
-
129
- function hideCover(){
130
- if (!cover || cover.classList.contains('hidden')) return;
131
- cover.classList.add('hidden');
132
- cover.addEventListener('transitionend', ()=> cover.remove(), { once:true });
 
 
 
133
  }
134
 
135
- // 1) 如果文档已经加载完成,直接安排一个微延迟隐藏
136
- if (document.readyState !== 'loading') {
137
- setTimeout(hideCover, 300);
138
- }
139
 
140
- // 2) 兜底:页面 load 后再尝试一次
141
- window.addEventListener('load', ()=> setTimeout(hideCover, 300));
 
142
 
143
- // 3) 关键:等待 gradio-app 的 shadowRoot 和 .gradio-container 出现
144
- const t0 = Date.now();
145
- const iv = setInterval(()=>{
146
- const host = document.querySelector('gradio-app');
147
- const ready = host && host.shadowRoot && host.shadowRoot.querySelector('.gradio-container');
148
- if (ready || Date.now() - t0 > 5000) { // 最多等 5s
149
- hideCover();
150
- clearInterval(iv);
151
- }
152
- }, 50);
153
  })();
154
  </script>
155
  """)
156
 
157
 
158
 
 
159
  gr.HTML(topbar())
160
 
161
  with gr.Row():
 
109
  ) as demo:
110
 
111
  gr.HTML("""
 
 
 
 
 
 
 
 
 
 
 
 
112
  <script>
113
  (function(){
114
+ // —— 核心:禁止任何 #dark-loader 存活 ——
115
+ function nukeDarkLoader(root){
116
+ const kill = el => { try { el.remove(); } catch(e){} };
117
+ // 当前文档里
118
+ document.querySelectorAll('#dark-loader').forEach(kill);
119
+ // gradio-app 的 shadow 里
120
+ const host = document.querySelector('gradio-app');
121
+ if (host && host.shadowRoot) {
122
+ host.shadowRoot.querySelectorAll('#dark-loader').forEach(kill);
123
+ }
124
  }
125
 
126
+ // 先清一次(防止被提前插入)
127
+ nukeDarkLoader(document);
 
 
128
 
129
+ // 监听整个文档树,发现 #dark-loader 就立即移除(解决“后来盖黑”)
130
+ const obs = new MutationObserver(() => nukeDarkLoader(document));
131
+ obs.observe(document.documentElement, { childList: true, subtree: true });
132
 
133
+ // Safari 前后台切换/iframe重挂载也再清一次
134
+ document.addEventListener('visibilitychange', () => {
135
+ if (document.visibilityState === 'visible') nukeDarkLoader(document);
136
+ });
137
+
138
+ // 5 秒兜底,防止偶发没清干净
139
+ setTimeout(()=> nukeDarkLoader(document), 5000);
 
 
 
140
  })();
141
  </script>
142
  """)
143
 
144
 
145
 
146
+
147
  gr.HTML(topbar())
148
 
149
  with gr.Row():