当前位置: 代码迷 >> ASP.NET >> js很菜的有关问题 window.open传参数
  详细解决方案

js很菜的有关问题 window.open传参数

热度:5621   发布时间:2013-02-25 00:00:00.0
js很菜的问题 window.open传参数 在线等
使用window.open打开一个HTML页面   并传一个参数ID,HTML页面分为三个框架,我怎么样能通过JS脚本将ID值取出,再分用地址栏别传给框架中的ASPX页面吗?,不想用SESSION,就用JS
请给出代码

------解决方案--------------------------------------------------------
你可以从父框架中的Url中直接通过字符串去到比如var url=parent.location.href;然后字符串得到参数;先在父窗体得到参数,并赋值给Js中全局变量,可以通过parent.parms
parms就是你定义的js变量

------解决方案--------------------------------------------------------
Simple Demo

//debugger;
var urlQuery = new UrlQuery();

/********************************************************************************************/
/*
** 以集合形式表示当前URL的查询部分
** 两种方式访问:
** query[name] // 区分大小写
** query.getItem(name) // 不区分大小写
*/

// 构造函数
function UrlQuery() {
// 分析查询字符串
//debugger;
var q = location.search;
// if(!q) return ; // 直接 return 就丢失了 后面的属性和方法定义
q = !q ? q : q.slice(1); // 去掉 ?

if(q) {
var arr = q.split( "& ");
for(var i = 0; i < arr.length; i++) {
var qi = arr[i].split( "= ");
// 动态设置属性
// 以查询字符串键名为属性名,其查询字符串值为属性值。
this[qi[0]] = qi[1];
}
}

// 返回指定查询串的值,不区分查询串键名大小写
this.item = function (name) {
for(var pn in this) {
if(pn.toUpperCase() == name.toUpperCase()) {
return this[pn];
}
}
}
}

/****************************************************************/
/*
** 静态方法
*/

// 对插入参数按两两一对构造查询字符串,
// 不以 ? 开头,也不以 & 结束。
//
UrlQuery.build = function() {
var args = arguments;
if(args.length % 2 != 0) {
throw new Error( "参数必须是偶数个,且成对出现。 ");
}
var q = " ";
for(var i = 0; i < args.length; i += 2) {
q += args[i] + "= " + args[i+1] + "& ";
}
q = !q ? q : q.slice(0, q.length - 1);
return q;
}

/****************************************************************/

/********************************************************************************************/
------解决方案--------------------------------------------------------
  相关解决方案