bboygun commited on
Commit
0c153fc
·
verified ·
1 Parent(s): d0d3586

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +20 -10
index.html CHANGED
@@ -124,29 +124,39 @@
124
  iframe.style.height = '100%';
125
  iframe.style.border = 'none';
126
 
127
- // 获取真正的来源域名
128
  let trueOrigin = window.location.origin;
129
- try {
130
- // 如果页面是通过iframe嵌入的,获取顶级窗口的域名
131
- if (window.parent !== window) {
132
- trueOrigin = window.parent.location.origin;
 
 
 
 
 
 
 
133
  }
134
- } catch (e) {
135
- // 跨域访问会抛出异常,此时使用当前域名
136
- console.log('Cannot access parent origin due to cross-origin restrictions');
137
  }
138
 
139
  // 将来源信息作为URL参数传递给Gradio服务
140
  const url = new URL(iframeSources[type]);
141
  url.searchParams.set('referer_origin', trueOrigin);
 
142
  url.searchParams.set('embed_timestamp', Date.now().toString());
143
 
144
  // 在控制台打印调试信息
145
  console.log('Embedding Gradio service:', {
146
  type: type,
147
  referer_origin: trueOrigin,
148
- full_url: url.toString(),
149
- is_embedded: window.parent !== window
 
 
150
  });
151
 
152
  iframe.src = url.toString();
 
124
  iframe.style.height = '100%';
125
  iframe.style.border = 'none';
126
 
127
+ // 获取真正的外部来源域名
128
  let trueOrigin = window.location.origin;
129
+ let referrer = document.referrer || '';
130
+
131
+ // 如果页面是通过iframe嵌入的,尝试获取顶级窗口的来源
132
+ // 由于跨域限制,我们无法直接访问顶级窗口的location
133
+ // 但可以通过document.referrer获取来源页面
134
+ if (window.parent !== window && referrer) {
135
+ try {
136
+ const referrerUrl = new URL(referrer);
137
+ trueOrigin = referrerUrl.origin;
138
+ } catch (e) {
139
+ console.log('Cannot parse referrer URL:', referrer);
140
  }
141
+ } else if (window.parent !== window) {
142
+ // 如果referrer为空但确实被嵌入,尝试使用当前页面origin
143
+ trueOrigin = window.location.origin;
144
  }
145
 
146
  // 将来源信息作为URL参数传递给Gradio服务
147
  const url = new URL(iframeSources[type]);
148
  url.searchParams.set('referer_origin', trueOrigin);
149
+ url.searchParams.set('referrer_url', referrer);
150
  url.searchParams.set('embed_timestamp', Date.now().toString());
151
 
152
  // 在控制台打印调试信息
153
  console.log('Embedding Gradio service:', {
154
  type: type,
155
  referer_origin: trueOrigin,
156
+ referrer_url: referrer,
157
+ current_origin: window.location.origin,
158
+ is_embedded: window.parent !== window,
159
+ full_url: url.toString()
160
  });
161
 
162
  iframe.src = url.toString();