惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Securelist
O
OpenAI News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
N
News and Events Feed by Topic
S
Security Affairs
SecWiki News
SecWiki News
Project Zero
Project Zero
L
Lohrmann on Cybersecurity
P
Proofpoint News Feed
P
Palo Alto Networks Blog
L
LINUX DO - 最新话题
H
Hacker News: Front Page
Recent Commits to openclaw:main
Recent Commits to openclaw:main
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
K
Kaspersky official blog
The GitHub Blog
The GitHub Blog
I
InfoQ
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
B
Blog
IT之家
IT之家
AWS News Blog
AWS News Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
N
News and Events Feed by Topic
Security Latest
Security Latest
美团技术团队
C
Check Point Blog
WordPress大学
WordPress大学
T
Tenable Blog
S
Security @ Cisco Blogs
Last Week in AI
Last Week in AI
博客园 - 聂微东
月光博客
月光博客
博客园 - 【当耐特】
S
Schneier on Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Secure Thoughts
Schneier on Security
Schneier on Security
C
Cisco Blogs
Cyberwarzone
Cyberwarzone

博客园 - erik168

C#事件的定义与触发[查找] join语法 DataAdpater的Fill研究 关于event的浏览器兼容问题-from佛 - erik168 - 博客园 表驱动法 javascript实现xslt转换xml - erik168 - 博客园 幻方算法 2个JS细节 DOM模型设置属性细节 - erik168 - 博客园 js的Hashtable类(转) - erik168 - 博客园 几个关于javascript的细节 .net的同步 .net线程基础知识 C#开发ActiveX控件 从数据库中查询所有表及所有字段的SQL语句(转) 解决IE访问域外信息警告对话框弹出 创建XmlHttpRequest - erik168 - 博客园 vi概况 [资料查找结果]一些SHELL要知道的东西 - erik168 - 博客园
保存javascript运行状态
erik168 · 2006-11-16 · via 博客园 - erik168

<html>
<head>
<script>
function FunctionTagger()
{
this.actions={};//存储作为状态信息的参数
}
//注册需要实现刷新定位的函数
FunctionTagger.prototype.register=function(s,action){
this.actions[s]=action;
}
//处理url的hash信息的函数
FunctionTagger.prototype.toHash=function(s){
var hash=document.location.hash;
hash=hash.slice(1,hash.length);
var arrHash=hash.split(".");
if(hash.length==0)
arrHash=[];
var exist=false;
for(var i=0;i<arrHash.length;i++)
{
if(arrHash[i]==s)
{
exist=true;
break;
}
}
if(!exist)arrHash.push(s);
document.location.hash="#"+arrHash.join(".");
}
function winOnload()
{
var myhash=document.location.hash;
myhash=myhash.slice(1,myhash.length);
myarrHash=myhash.split(".");
if(myhash.length==0)myarrHash=[];
for(var i=0;i<myarrHash.length;i++)
{
ft.actions[myarrHash[i]]();
}
}
if(window.attachEvent)window.attachEvent("onload",winOnload);
else window.addEventListener("load",winOnload,true);
var ft=new FunctionTagger();
ft.register("p1",setp1);
ft.register("p2",setp2);
ft.register("p3",setp3);
function setCont(id,cont)
{
container=document.getElementById(id);
container.innerHTML=cont;
}
function setp1()
{
setCont("p1","here is p1");
ft.toHash("p1");
}
function setp2()
{
setCont("p2","here is p2");
ft.toHash("p2");
}
function setp3()
{
setCont("p3","here is p3");
ft.toHash("p3");
}
</script>
</head>
<body>
<a href="javascript:void(0)" onclick="setp1()">link1</a>
<a href="javascript:void(0)" onclick="setp2()">link2</a>
<a href="javascript:void(0)" onclick="setp3()">link3</a>
<div id="p1">p1</div>
<div id="p2">p2</div>
<div id="p3">p3</div>
</body>
</html>