仿浏览器 前进 后退 刷新
描述:利用js脚本的Array集合实现,挺实用,特别是在自己做框架的时候<script>
function
goUrl(urlItem,obj)
{
var
HpageIndex = 0;//
定义存储URL地址集合的最大索引
var
HpageLength = 0;//
定存储URL地址集合的长度
var
HpageUrl = new
Array();//
定义存储URL地址的集合
HpageIndex
= parent.window.pageIndex;//
获取URL地址集合的最大索引,(父级页面的全局变量)
HpageLength
= parent.window.pageLength; //
获取URL地址集合的总长度,(父级页面的全局变量)
HpageUrl
= parent.window.pageUrl;//
获取URL地址集合,(父级页面的全局变量)
var
urlPath = parent.document.getElementById('mainFrame').src;//
获取主框架当前访问的页面,(主框架MainFrame的src所指定页面地址)
///
刷新事件的判断
if(urlItem
== ''
&& obj == '')
{
urlPath
= parent.document.getElementById('mainFrame').src;//
为了避免异常,在这里重新获取一次 主框架当前访问的页面
parent.document.getElementById('mainFrame').src
= urlPath;//
设置主框架当前要访问的页面
}
///
首页事件处理
else
if(urlItem
== '0'
&& obj == '0')
{
urlPath
= HpageUrl[0];//
获取集合中第一项值(页面加载时存储进去的首页,也可以自己定义)
parent.document.getElementById('mainFrame').src
= urlPath;//
设置主框架当前要访问的页面
}
///
页面访问历史 后退事件处理
else
if(urlItem
== '-1'
&& obj == '-1')
{
//
判断URL地址集合(全局是变量)是否为空
if(parent.window.pageUrl
!= null){
//
判断集合的长度是否为1,是则表示访问历史为1
if
(parent.window.pageUrl.length == 1)
urlPath
= parent.window.pageUrl[0];
//
判断集合长度是否大于1,是则循环判断访问历史
else
if
(parent.window.pageUrl.length > 1){
//
循环访问历史地址集合
for(var
i = 0; i < HpageUrl.length; i++ ){
//
判断是否等于当前正在访问的页面地址
if(urlPath==HpageUrl[i])
{
//
判断是否后退到第一个, 是则直接取第一个地址
if((i-1)
<= 0)
{
urlPath
= HpageUrl[0];
break;
}
else
{
urlPath
= HpageUrl[i-1];//
获取当前访问地址相等的上一个访问地址记录
break;
}
}
}
}
}
if(urlPath
== '')//
判断历史访问记录地址是否为空,空则返回主框架当前地址
urlPath
= parent.document.getElementById('mainFrame').src;
parent.document.getElementById('mainFrame').src
= urlPath;//
设置主框架当前要访问的页面
}
//
页面访问历史 前进事件处理
else
if(urlItem
== '1'
&& obj == '1')
{
//
判断URL地址集合(全局是变量)是否为空
if(parent.window.pageUrl
!= null){
//
判断集合的长度是否为1,是则表示访问历史为1
if
(parent.window.pageUrl.length == 1)
urlPath
= parent.window.pageUrl[0];
//
判断集合长度是否大于1,是则循环判断访问历史
else
if
(parent.window.pageUrl.length > 1){
//
循环访问历史地址集合
for(var
i = 0; i < HpageUrl.length; i++ ){
//
判断是否等于当前正在访问的页面地址
if(urlPath==HpageUrl[i])
{
//
判断是否前进到最后一个, 是则直接取最后一个地址
if((i+1)
>= parent.window.pageUrl.length)
{
urlPath
= HpageUrl[i];
break;
}
else
{
urlPath
= HpageUrl[i+1];//
获取当前访问地址相等的下一个访问地址记录
break;
}
}
}
}
}
if(urlPath
== '')//
判断历史访问记录地址是否为空,空则返回主框架当前地址
urlPath
= parent.document.getElementById('mainFrame').src;
parent.document.getElementById('mainFrame').src
= urlPath;//
设置主框架当前要访问的页面
}
else
{
urlPath
= "Default.aspx?"+urlItem;//
设置事件传递的要访问的页面地址
parent.document.getElementById('mainFrame').src
= urlPath;//
设置主框架当前要访问的页面
urlPath
= parent.document.getElementById('mainFrame').src;
//
重新获取主框架当前要访问的页面
HpageUrl[HpageIndex
+ 1] = urlPath;//
将当前访问的页面地址加入到页面临时URL的地址集合
parent.window.pageIndex
= HpageIndex + 1; //
设置全局最大索引
parent.window.pageLength
= HpageLength + 1; //
设置全局集合的长度
parent.window.pageUrl
= HpageUrl;//
设置全局集合数据
//alert('当前访问:'
+ urlPath + ' pageUrl.Length:' + HpageUrl.length,+'');
}
}
</script>
作者:WuWenji_ZhaoLinQing