「Widget:Custom map」の版間の差分
提供:メタファー リファンタジオ 攻略Wiki
ヘイグ運営用アカウント (トーク | 投稿記録) 編集の要約なし |
ヘイグ運営用アカウント (トーク | 投稿記録) 編集の要約なし |
||
20行目: | 20行目: | ||
<!-- Global Configuration --> | <!-- Global Configuration --> | ||
<script> | <script> | ||
// | // デバッグログ関数 | ||
function debugLog(message, data = null) { | |||
const timestamp = new Date().toISOString(); | |||
const logMessage = data | |||
? `[${timestamp}] ${message}: ${JSON.stringify(data)}` | |||
: `[${timestamp}] ${message}`; | |||
console.log(logMessage); | |||
} | |||
// GTP8の状態を監視する関数 | |||
function checkGTP8State() { | |||
debugLog('Current GTP8 State', { | |||
exists: !!window.GTP8, | |||
properties: window.GTP8 ? Object.keys(window.GTP8) : null, | |||
initializeMap: window.GTP8 ? typeof window.GTP8.initializeMap : null, | |||
api: window.GTP8 ? !!window.GTP8.api : null, | |||
popups: window.GTP8 ? !!window.GTP8.popups : null | |||
}); | |||
} | |||
// スクリプトローダー | |||
function loadScript(url) { | |||
return new Promise((resolve, reject) => { | |||
debugLog(`Loading script: ${url}`); | |||
const script = document.createElement('script'); | |||
script.src = url; | |||
script.onload = () => { | |||
debugLog(`Successfully loaded: ${url}`); | |||
checkGTP8State(); | |||
resolve(); | |||
}; | |||
script.onerror = () => { | |||
debugLog(`Failed to load: ${url}`); | |||
reject(new Error(`Failed to load ${url}`)); | |||
}; | |||
document.head.appendChild(script); | |||
}); | |||
} | |||
// 初期化 | |||
window.GTP8 = { | window.GTP8 = { | ||
initializeMap: null, | initializeMap: null, | ||
32行目: | 71行目: | ||
}; | }; | ||
debugLog('Initial GTP8 setup complete'); | |||
checkGTP8State(); | |||
// | // 順番にスクリプトを読み込む | ||
async function loadAllScripts() { | |||
try { | |||
await loadScript('https://dq.h1g.jp/leaflet/gtp8-core.js'); | |||
debugLog('After core load', { initializeMap: typeof window.GTP8.initializeMap }); | |||
await loadScript('https://dq.h1g.jp/leaflet/gtp8-icons.js'); | |||
await loadScript('https://dq.h1g.jp/leaflet/gtp8-popups.js'); | |||
await loadScript('https://dq.h1g.jp/leaflet/gtp8-api.js'); | |||
// init.jsを読み込む前に最終チェック | |||
checkGTP8State(); | |||
await loadScript('https://dq.h1g.jp/leaflet/gtp8-init.js'); | |||
debugLog('All scripts loaded'); | |||
// 最終状態チェック | |||
checkGTP8State(); | |||
} catch (error) { | |||
debugLog('Script loading error', error); | |||
alert('スクリプトの読み込み中にエラーが発生しました。'); | |||
} | } | ||
} | |||
// ページ読み込み完了時に実行 | |||
$(document).ready(() => { | |||
debugLog('Document ready, starting script load'); | |||
loadAllScripts(); | |||
}); | |||
// エラーハンドリング | |||
window.onerror = function(msg, url, line, col, error) { | |||
debugLog('Global error caught', { | |||
message: msg, | |||
url: url, | |||
line: line, | |||
column: col, | |||
error: error?.toString() | |||
}); | |||
return false; | |||
}; | }; | ||
</script> | </script> | ||
<!-- | <!-- Map Container --> | ||
< | <div id="map" style="width: 100%; height: 600px;"></div> | ||
</includeonly> | </includeonly> |