求教js获取url参数

JavaScript010

求教js获取url参数,第1张

推荐你使用一个专门处理这种情况的jquery插件,目前网上已经很难下载到,我就把源码贴这里,你自己保存到一个js中,然后在页面中引用该js。使用方法在注释中,本人亲自使用过,才会在这里给你回答。请采纳。

/**

//例如 当前你的URL是:

//http://www.jb51.net/index.php?test=1&kk=2

//

//如果想获取test,则可以引入插件后,

//用如下方法获取:

//var test = $.query.get('test')

//

//如果参数有多个相同的名称 ,则可以这样:

//var arr = $.query.get('testy')

//输出: [ 值1 , 值2, 值3...]

//

//如果要获取多个相同名称中的某一个,可以这样:

//var arrayElement = $.query.get('testy[1]')

//

//此插件不仅能获取参数,也能设置参数。

//

//设置一个参数:

//var newUrl = $.query.set("section", 5).toString()

//输出 : "?section=5"

//

//设置两个参数:

//var newUrl = $.query.set("section", 5).set("action", "do").toString()

//输出 : "?action=do§ion=5"

//

//

//删除一个参数:

//var oldQueryAgain = $.query.REMOVE("type")

//

//清空所有参数:

//var emptyQuery = $.query.empty()

//

//复制所有参数:

//var stillTheSame = $.query.copy()

new function(settings) {

// Various Settings

var $separator = settings.separator || '&'

var $spaces = settings.spaces === false ? false : true

var $suffix = settings.suffix === false ? '' : '[]'

var $prefix = settings.prefix === false ? false : true

var $hash = $prefix ? settings.hash === true ? "#" : "?" : ""

var $numbers = settings.numbers === false ? false : true

jQuery.query = new function() {

var is = function(o, t) {

return o != undefined &&o !== null &&(!!t ? o.constructor == t : true)

}

var parse = function(path) {

var m, rx = /\[([^[]*)\]/g , match = /^([^[]+)(\[.*\])?$/ .exec(path), base = match[1], tokens = []

while (m = rx.exec(match[2])) tokens.push(m[1])

return [base, tokens]

}

var set = function(target, tokens, value) {

var o, token = tokens.shift()

if (typeof target != 'object') target = null

if (token === "") {

if (!target) target = []

if (is(target, Array)) {

target.push(tokens.length == 0 ? value : set(null, tokens.slice(0), value))

} else if (is(target, Object)) {

var i = 0

while (target[i++] != null)

target[--i] = tokens.length == 0 ? value : set(target[i], tokens.slice(0), value)

} else {

target = []

target.push(tokens.length == 0 ? value : set(null, tokens.slice(0), value))

}

} else if (token &&token.match( /^\s*[0-9]+\s*$/ )) {

var index = parseInt(token, 10)

if (!target) target = []

target[index] = tokens.length == 0 ? value : set(target[index], tokens.slice(0), value)

} else if (token) {

var index = token.replace( /^\s*|\s*$/g , "")

if (!target) target = { }

if (is(target, Array)) {

var temp = { }

for (var i = 0i <target.length++i) {

temp[i] = target[i]

}

target = temp

}

target[index] = tokens.length == 0 ? value : set(target[index], tokens.slice(0), value)

} else {

return value

}

return target

}

var queryObject = function(a) {

var self = this

self.keys = { }

if (a.queryObject) {

jQuery.each(a.get(), function(key, val) {

self.SET(key, val)

})

} else {

jQuery.each(arguments, function() {

var q = "" + this

q = q.replace( /^[?#]/ , '')// remove any leading ? || #

q = q.replace( /[&]$/ , '')// remove any trailing &||

if ($spaces) q = q.replace( /[+]/g , ' ')// replace +'s with spaces

jQuery.each(q.split( /[&]/ ), function() {

var key = decodeURIComponent(this.split('=')[0] || "")

var val = decodeURIComponent(this.split('=')[1] || "")

if (!key) return

if ($numbers) {

if ( /^[+-]?[0-9]+\.[0-9]*$/ .test(val)) // simple float regex

val = parseFloat(val)

else if ( /^[+-]?[0-9]+$/ .test(val)) // simple int regex

val = parseInt(val, 10)

}

val = (!val &&val !== 0) ? true : val

if (val !== false &&val !== true &&typeof val != 'number')

val = val

self.SET(key, val)

})

})

}

return self

}

queryObject.prototype = {

queryObject: true,

has: function(key, type) {

var value = this.get(key)

return is(value, type)

},

GET: function(key) {

if (!is(key)) return this.keys

var parsed = parse(key), base = parsed[0], tokens = parsed[1]

var target = this.keys[base]

while (target != null &&tokens.length != 0) {

target = target[tokens.shift()]

}

return typeof target == 'number' ? target : target || ""

},

get: function(key) {

var target = this.GET(key)

if (is(target, Object))

return jQuery.extend(true, { }, target)

else if (is(target, Array))

return target.slice(0)

return target

},

SET: function(key, val) {

var value = !is(val) ? null : val

var parsed = parse(key), base = parsed[0], tokens = parsed[1]

var target = this.keys[base]

this.keys[base] = set(target, tokens.slice(0), value)

return this

},

set: function(key, val) {

return this.copy().SET(key, val)

},

REMOVE: function(key) {

return this.SET(key, null).COMPACT()

},

remove: function(key) {

return this.copy().REMOVE(key)

},

EMPTY: function() {

var self = this

jQuery.each(self.keys, function(key, value) {

delete self.keys[key]

})

return self

},

load: function(url) {

var hash = url.replace( /^.*?[#](.+?)(?:\?.+)?$/ , "$1")

var search = url.replace( /^.*?[?](.+?)(?:#.+)?$/ , "$1")

return new queryObject(url.length == search.length ? '' : search, url.length == hash.length ? '' : hash)

},

empty: function() {

return this.copy().EMPTY()

},

copy: function() {

return new queryObject(this)

},

COMPACT: function() {

function build(orig) {

var obj = typeof orig == "object" ? is(orig, Array) ? [] : { } : orig

if (typeof orig == 'object') {

function add(o, key, value) {

if (is(o, Array))

o.push(value)

else

o[key] = value

}

jQuery.each(orig, function(key, value) {

if (!is(value)) return true

add(obj, key, build(value))

})

}

return obj

}

this.keys = build(this.keys)

return this

},

compact: function() {

return this.copy().COMPACT()

},

toString: function() {

var i = 0, queryString = [], chunks = [], self = this

var encode = function(str) {

str = str + ""

if ($spaces) str = str.replace( / /g , "+")

return encodeURIComponent(str)

}

var addFields = function(arr, key, value) {

if (!is(value) || value === false) return

var o = [encode(key)]

if (value !== true) {

o.push("=")

o.push(encode(value))

}

arr.push(o.join(""))

}

var build = function(obj, base) {

var newKey = function(key) {

return !base || base == "" ? [key].join("") : [base, "[", key, "]"].join("")

}

jQuery.each(obj, function(key, value) {

if (typeof value == 'object')

build(value, newKey(key))

else

addFields(chunks, newKey(key), value)

})

}

build(this.keys)

if (chunks.length >0) queryString.push($hash)

queryString.push(chunks.join($separator))

return queryString.join("")

}

}

return new queryObject(location.search, location.hash)

}

}(jQuery.query || { }) // Pass in jQuery.query as settings object

你应该是想向打开的窗口传值吧,open(url,title,style,args)函数的第一个参数是窗口连接,第二个参数是窗口名,第三个参数是窗口样式,第四个和之后的参数则都是向打开窗口传的值。例如:

window.open("a.html","new_win","menubar=true","this is a string")

在新打开的窗口使用window.arguments[0]可以获得传递过来的字符串,如果还有第五个参数可以使用window.arguments[1],以此类推,当然也可以传递对象。具体的可以查看open函数的详细用法。

var args = WScript.Arguments

try{

if (args.length == 0) {

throw "No Argument"

} else {

WScript.Echo( args(0)//括号错了 )

}

}catch(e) {

WScript.Echo(e)

}

括号错了