• [经验][JS]如何观察网站,进而模仿


    应该存在着一类人:

    1.看到美丽的网站时,就会F12,看看他是怎么实现的

    2.看到网站数据是自己需要的时候,就会F12,看看他是怎么拿到数据的

    3.看到网站一个有趣的模块时,,就会F12,看看他是怎么制作的

    看久了,就知道了大概规律

    有时不懂,也会去google,baidu一下

    ---

    观察网站,一般是这样的吧:

    1.瞎点点,看看有什么特别的东西吸引你的

    2.右击查看元素,或F12,去查看元素Dom节点

    3.看看效果展示是,Dom节点的变化

    4.看看外链和内部的脚本,如果压缩了,就用解压工具解压后看

    5.有的网站脚本很长,需要耐心分解,分析

    6.对于数据,用network 页查看他的自由,一般会在脚本类型里可以找到数据,也有相应的请求地址,耐心分析一下参数意思即可

    7.知道了数据,他的应用很简单

    如果是json,先试试可不可以用ajax方法获取,一般跨域不允许,这时只能用服务器去模拟抓取了

    如果是script,那就用script标签进行加载,然后用加载完成事件进行后续数据显示操作

    8.css方面,F12页面直接看的见

    ---

    跨域请求:

    Jquery:

    $.getScript(url,success(response,status))

    $.getJSON(url,[data],[callback])

    ---

    备注onload事件:(抄来的)

    1.script标签:

    IE的 script 元素支持onreadystatechange事件,不支持onload事件。

    FF的script 元素不支持onreadystatechange事件,只支持onload事件。

    如果要在一个<script src="http://xiaogai1010.blog.163.com/blog/xx.js"> 加载完成执行一个操作,FF使用onload事件就行了,IE下则要结合onreadystatechange事件和this.readyState,以 下是IE的一个例子:

    <script type="text/javascript" src="http://xiaogai1010.blog.163.com/blog/xx.js" onreadstatechange="if(this.readyState=='load') alert('loaded');"></script>

    this.readyState的值为'loaded'或者'complete'都可以表示这个script已经加载完成.

    如何结合IE和FF的区别?参考一下jquery的源码:

    var script = document.createElement('script');

    script.src="http://xiaogai1010.blog.163.com/blog/xx.js";

    script.onload = script.onreadystatechange = function(){

         if(  ! this.readyState     //这是FF的判断语句,因为ff下没有readyState这人值,IE的readyState肯定有值

              || this.readyState=='loaded' || this.readyState=='complete'   // 这是IE的判断语句

        ){

              alert('loaded');

        }

    };

    注意:readyState是针对IE浏览器,载入完毕的情况是loaded,缓存的情况下可能会出现readyState为complete。所以两个不能少。

    2.iframe标签: 

    对于用js创建的iframe的加载,一定要在其加载完成之后再进行操作,否则会出现问题
    (1)在ie中,判断iframe加载完成,用onreadystatechange,但是IE会执行两次,分别是ifr1.readyState == 'interactive'和
    ifr1.readyState == 'complete',所以需要判断 redyState=='complete' ;然后再对iframe进行相关的操作;
    (2)但是在标准浏览器以及ie9之后,用onload来判断加载的完成。

  • 相关阅读:
    mysql分组统计后将结果顺序排列(union实现)
    mysql格式化日期
    yaf框架安装
    如何通过PHP将excel的数据导入MySQL中
    yii日志保存机制
    安装PyInstaller打包python
    python正则表达式详解
    Python中类的定义与使用
    例子 使用sqlite3 数据库建立数据方式
    python操作轻量级数据库
  • 原文地址:https://www.cnblogs.com/wangxinsheng/p/4251954.html
Copyright © 2020-2023  润新知