三個頁在同一個窗口,分別為main.htm,left.htm和right.htm。
main.htm
復制代碼 代碼如下:
<html>
<head>
<title>實現跨</title>
</head>
<body>
<div>主窗口</div>
<iframe id="left" name="left" width="500px" height="300px;" src="left.htm" ></iframe>
<iframe id="right" name="right" width="100px" height="100px;" src="right.htm" ></iframe>
</body>
</html>
left.htm
復制代碼 代碼如下:
<html>
<head><title>左邊</title></head>
<body>
<div>我是左邊</div>
<div><img src="http://www.enjoymyself.info/images/buysc.jpg" alt=" " /></div>
</body>
</html>
right.htm
復制代碼 代碼如下:
<html>
<head><title>右邊</title></head>
<body>
<div>
<input onclick="onclickRefresh();" type="button" value="提交" /></div>
<script type="text/javascript">
function onclickRefresh()
{
parent.frames[ "left"].location.reload();
//window.left.location.reload();
}
</script>
</body>
</html>
看到right.htm裡面
function onclickRefresh()通過 parent.frames["left"].location.refresh();來實現右邊頁面刷新左邊頁面.
如果在主頁面加
復制代碼 代碼如下:
<div><input type="button" onclick="mainRefresh();" value="主提交" /></div>
<script type="text/javascript">
function mainRefresh()
{
window.left.location.reload();
}
</script>
則可以通過主頁面刷新子頁面。
雖然這樣可以超級簡單的實現的目的,但是實際項目中,數據不會是這麼簡單的,最常見是左\右樹,目錄樹的創建加載(如創建一千個節點)本來就是比較耗資源。如果還是通過方式來刷新左右頁面,效率之低可見而知,那麼是不是可以通過其他方式來實現跨域刷新或者提交呢?
我所想到的是通過ajax實現數據局部加載。而不是整個樹的加載。另外通過jquery的json處理方式也可實現局部數據的更新。
不知道還有沒有其他更高效的方法?1000個節點的樹加載,效率值得思考的問題。