You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在指定div中加载页面?使用target="_self"无效果求助

解决页面加载到指定div的问题

你现在的写法根本行不通,核心原因是:target 属性仅针对浏览器认可的浏览上下文(比如iframe、新窗口/标签页)生效,普通<div>不属于这个范畴——不管你把target设成content还是_self,都没法实现把页面加载到div里的效果。

下面给两种靠谱的解决办法:

方法1:用iframe替代div(最简单直接)

把原来的<div name="content">改成<iframe>,这样a标签的target="content"就能直接生效,点击链接后页面会加载到iframe容器里:

<div class="div1">
    <ul class="menu">
        <li><a id="li1" href="main.html" target="content">HOME</a></li>
        <li><a id="li2" href="catog.html" target="content">ALL CATOGREIS</a></li>
        <li><a id="li3" href="about us.html" target="content">ABOUT US</a></li>
        <li><a id="li4" href="contact us.html" target="content">CONTACT US</a></li>
    </ul>
</div>
<iframe name="content" class="content" frameborder="0"></iframe>

可以给iframe加frameborder="0"去掉默认边框,再用CSS调整宽高、样式,让它看起来和原来的div完全一致。

方法2:用JavaScript异步加载到div(无iframe方案)

如果不想用iframe,想真正把页面内容插入到div中,就得通过JS阻止a标签的默认跳转行为,用AJAX/fetch获取页面内容后再插入到目标div:

修改后的HTML(可去掉target属性)

<div class="div1">
    <ul class="menu">
        <li><a id="li1" href="main.html">HOME</a></li>
        <li><a id="li2" href="catog.html">ALL CATOGREIS</a></li>
        <li><a id="li3" href="about us.html">ABOUT US</a></li>
        <li><a id="li4" href="contact us.html">CONTACT US</a></li>
    </ul>
</div>
<div id="content" class="content"></div>

对应的JavaScript代码

// 获取所有菜单链接
const menuLinks = document.querySelectorAll('.menu a');
// 获取目标div容器
const contentDiv = document.getElementById('content');

menuLinks.forEach(link => {
    link.addEventListener('click', function(e) {
        // 阻止a标签默认的页面跳转行为
        e.preventDefault();
        // 获取要加载的页面URL
        const targetUrl = this.href;
        
        // 用fetch请求页面内容
        fetch(targetUrl)
            .then(response => {
                if (!response.ok) {
                    throw new Error('页面加载失败');
                }
                return response.text();
            })
            .then(pageHtml => {
                // 将获取到的HTML内容插入到div中
                contentDiv.innerHTML = pageHtml;
            })
            .catch(error => {
                console.error(error);
                contentDiv.innerHTML = '<p>页面加载出错,请稍后重试</p>';
            });
    });
});

⚠️ 注意:这种方法受浏览器同源策略限制,如果你要加载的页面和当前页面不在同一域名、端口或协议下,浏览器会直接阻止请求。这种情况下建议优先用iframe方案,或者通过后端做代理转发。


内容的提问来源于stack exchange,提问作者mmll llmm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:25:44