A、B、C、D四个页,B中框架的默认页为C,想在A中链接到B时B的框架加载D,怎么做?
作者:闪吧 类型:原创 来源:闪吧
A、B、C、D四个页,B中框架的默认页为C,想在A中链接到B时B的框架加载D,怎么做?
解决思路: 可以通过链接中加上参数,给B页传递一个参数,告诉B页需要让该页的iframe加载D页。问题的关键是在B页中如何获取这个参数。
具体步骤: 1.如果空间支持ASP等后台语言,可以在A页中的链接地址里加上参数,如:
<a href="B.asp?loadpage=D.htm">B_D</a>
然后在B页中的处理:
<%
Dim url
url="default.htm" ’加载默认页
if Request.QueryString("loadpage")<>"" then url=Request.QueryString("loadpage") ’如果在地址中找到loadpage参数,设置变量url的值为参数loadpage的值
%>
<iframe src="<%=url%>"></iframe>
2.空间不支持后台技术的话就只能通过用脚本把地址中的参数提取出来:
<script>
function QueryString(item){
//在地址参数(如"?loadpage=d.htm&id=34")中查找匹配"litem=值"的字符串
var sValue=location.search.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"))
//如果找到,返回数组的第二个元素,否则返回null
return sValue?sValue[1]:sValue
}
var url="default.htm" //默认加载页
//如果页面地址中包含loadpage参数,设置变量url的值为参数loadpage的值
if(QueryString("loadpage")) url=QueryString("loadpage")
//输出 iframe 代码
document.write("<iframe src=\""+url+"\"></iframe>")
</script>
特别提示
本例代码运行后,在A页中单击链接到B页,B页的iframe将加载D页,如果不传递参数,将默认打开C页。
特别说明
本例需要掌握的技巧是如何获取通过URL传递过来的参数。在ASP中这个很容易办到,但在JavaScript中就有点麻烦,首先通过用location对象的search属性获取地址中的参数,然后用正则查找匹配的参数值。关于正则的语法请参考第四部分第三章的《问题10》。
location.search 设置或获取 href 属性中跟在问号后面的部分。
责任编辑:kissall 时间:2005年8月29日
- 最近更新
