zoukankan      html  css  js  c++  java
  • 使用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>

     单击“运行代码”按钮,然后会弹出来一个新的页面,然后在按一下浏览器里的“转向”,等上几秒钟就可以看到老赵的博客首页了。

     而且还可以回复哦。因为都在一个域里面,嘿嘿。

     在线运行功能借用了一下“司徒正美”的博客里的方法。http://www.cnblogs.com/rubylouvre/archive/2009/09/17/1567607.html

    ps:今天下午有日偏食,同事拍了几张照片。有一张感觉挺好的,发一下。注意这个是太阳(日偏食),不是月亮,呵呵。

    北京日偏食

  • 相关阅读:
    zabbix 配置发送邮件报警
    sql server 修改表结构语法大全
    SQL Server日期与字符串之间的转换
    Convert.ToDateTime(值),方法可以把一个值转化成DateTime类型。
    Oracle trunc()函数的用法
    Oracle job procedure 存储过程定时任务
    向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE('{0}','YYYY-MM-DD'))
    逗号分隔的字符串转换为行数据(collection)(续)
    Oracle中INSTR、SUBSTR和NVL的用法
    oracle中substr() instr() 用法
  • 原文地址:https://www.cnblogs.com/jyk/p/1648853.html
Copyright © 2011-2022 走看看