
点击锚点链接(如 )会触发浏览器默认跳转行为,导致页面滚动至对应元素位置;为防止 iframe 显示时页面突兀上移,需在事件处理函数中调用 event.preventDefault() 阻止该默认行为。
点击锚点链接(如 ``)会触发浏览器默认跳转行为,导致页面滚动至对应元素位置;为防止 iframe 显示时页面突兀上移,需在事件处理函数中调用 `event.preventdefault()` 阻止该默认行为。
当你使用 <a href="#some-id"></a> 配合 onclick 处理 iframe 显示逻辑时,浏览器会在执行 JavaScript 的同时默认尝试滚动到页面中 id="some-id" 的元素位置——而你的 iframe 元素恰好拥有该 id(例如 id="izanagisBurden"),因此点击链接后页面会瞬间“跳”到 iframe 所在位置,造成用户体验上的割裂感。
解决方法非常简洁:在每个点击函数中接收事件对象,并调用 event.preventDefault() 来取消浏览器的默认锚点跳转行为。
✅ 正确写法(修改后的 JavaScript):
<script>
function clickMe(event) {
event.preventDefault(); // ? 关键:阻止默认跳转
document.getElementById('izanagisBurden').src = "https://www.light.gg/db/items/3211806999/izanagis-burden/";
document.getElementById('izanagisBurden').style.display = '';
document.getElementById('forbearance').style.display = 'none';
document.getElementById('theLament').style.display = 'none';
}
function clickMe2(event) {
event.preventDefault(); // ? 同样需要
document.getElementById('forbearance').src = "https://www.light.gg/db/items/613334176/forbearance/";
document.getElementById('forbearance').style.display = '';
document.getElementById('izanagisBurden').style.display = 'none';
document.getElementById('theLament').style.display = 'none';
}
function clickMe3(event) {
event.preventDefault(); // ? 全部加上
document.getElementById('theLament').src = "https://www.light.gg/db/items/3487253372/the-lament/";
document.getElementById('theLament').style.display = '';
document.getElementById('forbearance').style.display = 'none';
document.getElementById('izanagisBurden').style.display = 'none';
}
</script>同时,建议优化 HTML 中的链接写法:将 href="#" 或 href="#izanagisBurden" 替换为语义更清晰、无副作用的值,例如 href="javascript:void(0)" 或直接 href="#" 配合 preventDefault 即可安全使用。推荐保持 href="#"(便于键盘导航和可访问性),只要确保事件被正确拦截即可。
? 注意事项:
-
event.preventDefault()必须在事件处理函数中被调用,且需显式声明event参数; - 不要遗漏任一函数——三个
clickMe系列函数都必须添加; - 无需修改 iframe 的
nojump="true"属性(该属性并不存在于 HTML 标准中,会被浏览器忽略); - 若后续引入键盘操作(如回车触发),此方案依然有效,因
preventDefault同样适用于keydown触发的点击模拟。
这样修改后,点击武器名称时 iframe 将平滑显示在原位置,页面不再滚动,用户可继续浏览上方内容,交互体验更加自然、专业。

















