「Widget:Custom map」の版間の差分
提供:メタファー リファンタジオ 攻略Wiki
ヘイグ運営用アカウント (トーク | 投稿記録) 編集の要約なし |
ヘイグ運営用アカウント (トーク | 投稿記録) 編集の要約なし タグ: 差し戻し済み |
||
238行目: | 238行目: | ||
popup.setContent(editableContent); | popup.setContent(editableContent); | ||
} else { | } else { | ||
// 編集モードでない場合は表示用のコンテンツを設定 | |||
if (title === '' && content === '') { | |||
layer.unbindPopup(); // タイトルと内容が空の場合はポップアップを表示しない | |||
} else { | |||
var displayContent = '<strong>' + title + '</strong><br>' + content; | |||
renderMediaWikiContent(displayContent) | |||
.then(function(renderedContent) { | |||
popup.setContent(renderedContent); | |||
}) | |||
.catch(function(error) { | |||
console.error("Render error:", error); | |||
// エラー時は未加工のコンテンツを表示 | |||
popup.setContent(displayContent); | |||
}); | |||
} | } | ||
// MediaWikiコンテンツのレンダリング | // MediaWikiコンテンツのレンダリング | ||
function renderMediaWikiContent(content) { | function renderMediaWikiContent(content) { | ||
return new Promise((resolve, reject) => { | |||
$.ajax({ | |||
url: API_BASE_URL + '/api.php', | |||
data: { | |||
action: 'parse', | |||
text: content, | |||
format: 'json' | |||
}, | |||
type: 'GET', | |||
success: function(data) { | |||
if (data.parse && data.parse.text) { | |||
var renderedContent = data.parse.text['*']; | |||
// レンダリング後の画像処理 | |||
setTimeout(function() { | |||
initLightGallery(renderedContent); | |||
}, 100); | |||
resolve(renderedContent); | |||
} else { | |||
} | reject(new Error('Invalid response format')); | ||
} | |||
}, | |||
error: function(xhr, status, error) { | |||
console.error('Failed to render MediaWiki content:', error); | |||
reject(error); | |||
} | |||
}); | |||
}); | }); | ||
} | } | ||