0

这是我正在使用的 JS

<script type="text/javascript">
function loader(value, url)
{
    document.getElementById("page").innerHTML=value;
    document.getElementById("display").src = url;
}var home = "HOME";

var admin = "ADMINISTARTOR";
var sales = "SALES";
var isve = "ISVE";
</script>

这是在文件的头部。我制作了一个包含链接的侧边栏:

<li><a href=<?php echo "\"/".INDEX."/sales/\"";?> onclick="loader(sales, this.href)">Sales</a>
    <ul>
        <li><a href=<?php echo "\"/".INDEX."/sales/move\"";?> onclick="loader(sales, this.href)">Movement</a></li>
        <li><a href=<?php echo "\"/".INDEX."/sales/cancel\"";?> onclick="loader(sales, this.href)">Cancel</a></li>
        <li><a href=<?php echo "\"/".INDEX."/sales/add\"";?> onclick="loader(sales, this.href)">Add new HW</a></li>
    </ul>
</li>

我有一个目标框架:

<div id='content' style='margin-left: 170px; height: 700px; width: 800px; overflow: auto;'>
    <iframe id='display' src=<?php echo "\"/".INDEX."/main/home\"";?> style='height: 650px; width: 800px;'></iframe>
</div>

当我单击顶级链接时,它会起作用,在我的例子中是销售,相关文档会显示在目标框架中,但是一旦我导航到子菜单链接,它就会加载到整个页面中。请帮忙!

4

2 回答 2

0

我不确定您想做什么,但根据我从代码中了解到的情况,您希望在单击不同链接时显示不同的 iFrame。

因此,如果您想使用 javascript 执行此操作,则应将所有数据加载到浏览器,然后您可以根据单击的链接隐藏或取消隐藏 iframe。因此,您可以为不同的链接设置不同的 iframe,然后相应地显示或隐藏它们。

或者,您可以使用 AJAX 并调用服务器以发送单击的其他链接的数据。

于 2013-06-28T08:04:54.133 回答
0

看起来您正在尝试做一些类似于 AJAX 已经做的事情。你可以调整你的加载器类来使用 jQuery 的加载函数。如果您愿意,这也将允许您摆脱 iframe,只需将页面加载到 div 中。在我看来,将它加载到 div 中无论如何都是更好的方法。

您需要在页面标题中引用 jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

然后你的新加载器看起来像这样:

function Loader(page) {
    $('#display').load(page + '.html');
}

这将根据您传递的页面名称将单独的 HTML 页面的内容加载到显示 div 中。我建议多阅读一些关于如何使用 jQuery 和 AJAX 加载方法的内容。http://api.jquery.com/load/

于 2013-06-28T08:27:20.363 回答