这是我写到一半的解释哥哥你自己研究好了.
首先你要了解document.cookie的格式:document.cookie="userId=828userName=hulk"
假设你这个js中的document.cookie="musicurl=www.sina.com"
var cookieString = new String(document.cookie)
载入页面cookie 以开头例子来说这时候cookieString="musicurl=www.sina.com"
var cookieHeader = "musicurl="
定义一个字符串
var beginPosition = cookieString.indexOf(cookieHeader)
查找字符串"musicurl="在cookie中出现的位置
cookieString = cookieString.substring(beginPosition + cookieHeader.length)
截取"musicurl="以后的字符串,并重新赋值给cookieString 以开头例子来说这时候cookieString="www.sina.com"
end = cookieString.indexOf("")
查找cookieString中的""位置
if (end>0)
如果cookieString中有""
{url = cookieString.substring(0,end)}
获取 cookieString中从开始到出现""的字符串并赋值给url
else
如果cookieString中没有有""
{url=cookieString}
就将整个cookieString赋值给url 以开头例子来说这时候url="www.sina.com"
String.prototype.GetCount = function(str,mode){return eval("this.match(/("+str+")/g"+(mode?"i":"")+").length")}
Eval方法
参数 :
codeString
必选。包含有效 JScript 代码的字符串。
override
可选项。确定要应用于 codeString 中代码的安全权限的字符串。
eval 函数允许动态执行 JScript 源代码。
传递给 eval 方法的代码执行时所在的上下文和调用 eval 方法时的上下文一样。请注意,在 eval 语句中定义的新变量或类型对于封闭程序是不可见的。
下面的代码将变量 mydate 初始化为测试日期或当前日期,这取决于变量 doTest 的值:
var doTest : boolean = true
var dateFn : String
if(doTest)
dateFn = "Date(1971,3,8)"
else
dateFn = "Date()"
var mydate : Date
eval("mydate = new "+dateFn+"")
print(mydate)
该程序的输出为:Thu Apr 8 00:00:00 PDT 1971
function urldecode(str){
var i,temp
var result=""
for(i=0i<str.lengthi++)
{
if(str.charAt(i)=="%")
{
if(str.charAt(++i)=="u")
{
temp=str.charAt(i++) + str.charAt(i++) + str.charAt(i++) + str.charAt(i++) + str.charAt(i)
result += unescape("%" + temp)
}else{
temp = str.charAt(i++) + str.charAt(i)
if(eval("0x"+temp)<=160){
result += unescape("%" + temp)
}else{
temp += str.charAt(++i) + str.charAt(++i) + str.charAt(++i)
result += Decode_unit("%" + temp)
}
}
}else{
result += str.charAt(i)
}
}
return result
}
function Decode_unit(str){
var p,q = ""
if(str.GetCount("%")!=2)return str
p=eval("0x" + str.split("%")[1])
q=eval("0x" + str.split("%")[2])
if(p<160 || q<160)return unescape(str)
str=str.replace(/%/g,"")
execScript("temp=&H"+str, "vbscript")
eval()和execScript都可以动态的执行JAVASCRITP脚本,但它们还是有些大大小小的不同,我将网上的一个帖子整理一下,帮大家理理头绪。有这么几个不同的地方:
1、eval对浏览器的支持比较的好,我测试过,它对IE和FIREFOX都支持,但是execScript对FIREFOX不支持。
2、execScript执行后的上下文是全局的,而eval执行后的上下文是调用方法的函数体内(目前还没有时间测试一下,忙ing)
下面的一段代码是融合将execScript的优点移植到eval的方法
在任何执行eval的上下文中只需将变量直接定义成 window 下的某个“属性”即可成为全局变量。
例如
function test()
{
eval("window.a = '全局变量'")
eval("window.b = function(){alert('全局函数')}")
}
test()
alert(a)
b()
文章出处:http://www.diybl.com/course/1_web/webjs/200877/131998.html
execScript("result=chr("+temp+")", "vbscript")
return result
}
1.document.write("")输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6.一个小写转大写的JS: document.getElementById("output").value = document.getElementById("input").value.toUpperCase()7.JS中的值类型:String,Number,Boolean,Null,Object,Function 8.JS中的字符型转换成数值型:parseInt(),parseFloat() 9.JS中的数字转换成字符型:(""+变量) 10.JS中的取字符串长度是:(length) 11.JS中的字符与字符相连接使用+号. 12.JS中的比较操作符有:==等于,!=不等于,>,>=,<.<= 13.JS中声明变量使用:var来进行声明 14.JS中的判断语句结构:if(condition){}else{} 15.JS中的循环结构:for([initial expression][condition][upadte expression]) {inside loop} 16.循环中止的命令是:break 17.JS中的函数定义:function functionName([parameter],...){statement[s]} 18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替. 19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self 20.状态栏的设置:window.status="字符"21.弹出提示信息:window.alert("字符")22.弹出确认框:window.confirm()23.弹出输入提示框:window.prompt()24.指定当前显示链接的位置:window.location.href="URL" 25.取出窗体中的所有表单的数量:document.forms.length 26.关闭文档的输出流:document.close()27.字符串追加连接符:+= 28.创建一个文档元素:document.createElement(),document.createTextNode() 29.得到元素的方法:document.getElementById()30.设置表单中所有文本型的成员的值为空: var form = window.document.forms[0] for (var i = 0i<form.elements.lengthi++){ if (form.elements.type == "text"){ form.elements.value = ""} } 31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE) 32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length 33.单选按钮组判断是否被选中也是用checked. 34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值) 35.字符串的定义:var myString = new String("This is lightsword")36.字符串转成大写:string.toUpperCase()字符串转成小写:string.toLowerCase()37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到. 其余看 http://pro-ygw.javaeye.com/blog/32517