fix: move XHR interceptor to injectedJavaScriptBeforeContentLoaded
インターセプターをページスクリプトより前に実行されるよう修正。 injectedJavaScript(ページ読込後)からinjectedJavaScriptBeforeContentLoaded (ページスクリプト実行前)へ移動することで、モックON時のページフリーズを解消。 - lib/webViewInjectjavascript.ts: injectJavascriptDataからインターセプターを分離、 generateBeforeContentLoadedScript()を新規エクスポート - stateBox/useTrainMenu.tsx: injectJavascriptBeforeContentLoadedを別途計算しコンテキストに追加 - components/Apps/WebView.tsx: injectedJavaScriptBeforeContentLoadedプロップを追加 Co-authored-by: Copilot <[email protected]>
This commit is contained in:
co-authored by
Copilot
parent
c31d35c099
commit
75fce29d74
@@ -38,12 +38,7 @@ export const injectJavascriptData = ({
|
||||
useUnyohub,
|
||||
useElesite,
|
||||
isDark,
|
||||
mockApiConfig = null,
|
||||
}: InjectJavascriptOptions): string => {
|
||||
// XHRインターセプターを先頭に注入(モックモード有効時)
|
||||
const xhrInterceptor = mockApiConfig
|
||||
? generateXhrInterceptorJs(mockApiConfig)
|
||||
: '';
|
||||
}: Omit<InjectJavascriptOptions, 'mockApiConfig'>): string => {
|
||||
|
||||
// 一番上のメニュー非表示 地図スイッチによって切り替え
|
||||
const topMenu =
|
||||
@@ -1405,7 +1400,6 @@ setStationMenuDialog.observe(document.querySelector('#disp'), {
|
||||
`
|
||||
: ``;
|
||||
return (
|
||||
xhrInterceptor +
|
||||
bootData +
|
||||
topMenu +
|
||||
trainIcon +
|
||||
@@ -1416,3 +1410,12 @@ setStationMenuDialog.observe(document.querySelector('#disp'), {
|
||||
makeStationMenu
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* XHRインターセプターJSを生成する(injectedJavaScriptBeforeContentLoaded用)
|
||||
* ページスクリプトより前に実行する必要があるため、別プロップで渡す。
|
||||
*/
|
||||
export const generateBeforeContentLoadedScript = (mockApiConfig: MockApiConfig | null): string => {
|
||||
if (!mockApiConfig) return '';
|
||||
return generateXhrInterceptorJs(mockApiConfig);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user