Сообщение от kostyanet
|
Задача с примерами сформулирована выше.
|
Мне твою ахинею читать неохота, но судя по названию темы, типа того
Url={
clone: function(){
var o=Object.create(this)
o.params={}
return o
},
setPath: function(path){this.path=path},
setParams: function(src){
for(var i in src) {
if(!src.hasOwnProperty(i)) return this; this.params[i]=encodeURIComponent(src[i])
}
return this
},
removeParam: function(param){with(this){
for(var i in params){if(i === param) {delete params[i]}}}
},
get: function(){
with(this) {
var paramsString=""
for(var i in params){ if(!params.hasOwnProperty(i)) return; paramsString+=i+"="+params[i]+"&"}
return path+paramsString.replace(/\&$/, "")
}
}
}
with(url=Url.clone()){
setPath("http://mysite.com?")
setParams({foo: "bla-bla", bar: "русский??текст"})
}
with(url) with(console){
log(get())
setParams({baz: "mooo"})
log(get())
removeParam("foo")
log(get())
setPath("http://another-site.com?")
log(get())
}
//>>>> [url]http://mysite.com?foo=bla-bla&bar=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3F%3F%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD[/url]
//>>>> [url]http://mysite.com?foo=bla-bla&bar=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3F%3F%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD&baz=mooo[/url]
//>>>> [url]http://mysite.com?bar=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3F%3F%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD&baz=mooo[/url]
//>>>> [url]http://another-site.com?bar=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3F%3F%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD&baz=mooo[/url]