使用IE6看老赵的博客——比较完美版(可以在线查看、回复)
上一个版本主要是测试一下我的想法,也是熟悉一下jQuery,代码这个东东不动手写一下是很难弄明白的。
有想法,写代码,出现错误,修改错误 = 不断进步。
带着问题去学习,动力就很大了。上一个版本能够看到了,但是还要修改URL,没看一篇都要改一下也太麻烦了。能不能点里面的连接,然后就直接看了呢?试了一下,很不幸又跳到那个郁闷的页面了。
怎么办呢?这就是问题。如何解决呢?修改连接,就是改一下a标签。点了之后不进行跳转不就行了吗?那我们还是来replace。
replace(/href="/g,"href="#" ")
测试。咦奇怪了,页面怎么变形了?查看了一下页面代码,原来css的连接文件也是href的形式,把css文件也给干掉了。没有css那页面就不用说了。
那么就要准确识别a标签了,其他标签的不能替换。怎么办呢?听说正则表达式可以。那具体怎么做呢,好像比较复杂。以前也没好好学正则,正好趁这个机会好好学习一下。找帮助,找代码,写代码,一点一点测试验证帮助里的例子。一点一点理解正则的思路、思维方式。
用了一下午的时间,终于弄出来了。
ss = ss.replace(/(<a)(.*?)(href=)/g, "$1 $2 $3"#"+ Math.random().toString() +"" onclick="myclick(this)" myurl=");
保留原来a标签里的id等属性(就是<a 和 href 之间的内容),把href的连接改成 # ,把原来的连接地址改成属性(myurl),最后在加上onclick事件。然后在事件根据属性(myurl)里面提取新的页面内容就可以了。
完整代码
代码
<head><title>用IE6看老赵的博客v1.1</title>
<script src="aspnet_client/jquery/jquery-1.3.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
//提取老赵的博客首页
showJeffreyZhao("http://www.cnblogs.com/JeffreyZhao/default.aspx");
});
function myclick(me)
{
//单击连接触发,清空内容
$("#results").empty();
//加载信息提示
$("#results").append("正在加载请稍后......");
showJeffreyZhao(me.myurl);
}
function showJeffreyZhao(url)
{
$.ajax({
url: url,
cache: false,
success: function(html){
ss = html;
//禁止调到那个郁闷的页面
ss=ss.replace(/location/g, "status");
//修改a标签
ss = ss.replace(/(<a)(.*?)(href=)/g, "$1 $2 $3"#"+ Math.random().toString() +"" onclick="myclick(this)" myurl=");
//清空上一次的内容
$("#results").empty();
//显示新的内容
$("#results").append(ss);
}
});
}
</script>
</head>
<body>
<div id="results">正在加载请稍后......</div>
</body>
</html>
<head> <title>用IE6看老赵的博客v1.1</title> </head> <body> <div id="results" >有点小问题,如果是第一次访问,请在下面点一下,然后才能开始查看。</div> <span id="pn" onclick="showJeffreyZhao('http://www.cnblogs.com/JeffreyZhao/default.aspx')">如果没有加载,请单击我</span> </body> </html>
运行代码
单击“运行代码”按钮,然后会弹出来一个新的页面,然后在按一下浏览器里的“转向”,等上几秒钟就可以看到老赵的博客首页了。
而且还可以回复哦。因为都在一个域里面,嘿嘿。
在线运行功能借用了一下“司徒正美”的博客里的方法。http://www.cnblogs.com/rubylouvre/archive/2009/09/17/1567607.html
- Kafka与Logstash的数据采集对接 —— 看图说话,从运行机制到部署
- Kafka入门初探+伪集群部署
- Beats数据采集---PacketbeatFilebeatTopbeatWinlogBeat使用指南
- linux NFS网络文件系统
- linux基础命令
- 国外大学自办星际赛事 鼓励学生自制AI来对战
- linux中的重要目录
- Mysql-2-数据库基础
- Shell-4-让文本飞
- Java程序员的日常——存储过程知识普及
- Java程序员的日常—— 基于类的策略模式、List<?>与List、泛型编译警告、同比和环比
- Shell-3-文件之名
- Mybatis文档阅读笔记(明日继续更新...)
- Java程序员的日常——SpringMVC+Mybatis开发流程、推荐系统
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python基础绘图教程(二)
- Docker简介与安装
- python绘图 | 国家气象局开源预报检验库(多图预警)
- Docker镜像与容器的常用操作
- DiDi Kafka-Manager安装和简单使用
- Docker数据管理与挂载管理
- Docker Dockerfile 指令详解与实战案例
- flume kafka和sparkstreaming整合
- Docker如何搭建私有registry镜像仓库
- Harbor介绍与企业级私有Docker镜像仓库搭建
- 如何查看docker run启动参数命令
- YAML 语言教程与使用案例
- 计算等压面要素场的基本检验指标
- Kubernetes K8S之SSL证书有效期修改
- Kubernetes K8S之通过yaml文件创建Pod与Pod常用字段详解