zoukankan      html  css  js  c++  java
  • 最近遇到的几个小东西

    关于window.location

    window.location.href  获取整个url

    window.location.pathname 获取文件目录

    window.location.hostname  获取域名

    每一次打开新的页面,浏览器都会记录页面历史,回退的时候常用back()方法

    history.back()

    如果想在当前页面的基础上打开一个页面,这样不会有浏览记录的存在

    可以这么干  window.location.replace()

    例如:window.location.replace("http://www.baidu.com");

    关于跨域:

    浏览器为了安全,搞了个同源策略,(协议、域名、端口),有一个不一样,不好意思,就不允许请求的发生!

    大神们想出了多种方法:

    1,如果是内部的服务器的话,让后设置下可以跨域,简单省事!

    response.setHeader("Access-Control-Allow-Origin", "*");  * 就代表所有,这里可以根据需要自己设置

    2,jsonp,我们请求的js,没有不允许这一说,随便搞,

    ,利用js的这一特性,在html文件中动态插入script标签,引用这个js,callback函数返回json字符串

    function addScript(){
        var script = document.createElement("script");
        script.type = "text/javascript" ;
        script.src = "http://localhost:8080/cross-domain/server/jsonp.jsp?callback=showName&data=1" ;
        document.body.appendChild(script);
    }

    总而言之就是生成数据的js数据文件,引用一下,就可以拿到数据了

    但是请求成功与否不好判定,还有就是请求地址可见,不安全

    3,代理proxy

    这个用的就比较多了,

    种方式首先将请求发送给后台服务器,通过服务器来发送请求,然后将请求的结果传递给前端。

    var url = "http://localhost:8080/cross-domain/server/proxy.jsp"
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET",url,true);
    xmlhttp.onreadystatechange = function (){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            console.log(xmlhttp.responseText);
        }
    }
    xmlhttp.send();

    4.window.name + iframe

    window.name可以跨页面使用

    拷贝别人的代码:

    <script type="text/javascript">
        var state = 0, 
        iframe = document.createElement('iframe'),
        loadfn = function() {
            if (state === 1) {
                var data = iframe.contentWindow.name;    // 读取数据
                alert(data);    //弹出'I was there!'
            } else if (state === 0) {
                state = 1;
                iframe.contentWindow.location = "http://a.com/proxy.html";    // 设置的代理空文件
            }  
        };
       iframe.src = 'http://b.com/data.html';//数据文件 if (iframe.attachEvent) { //页面加载js时,此时iframe还没有插入到页面里,执行的代码2,指向空文件 iframe.attachEvent('onload', loadfn); //1 } else { iframe.onload = loadfn; //2 } document.body.appendChild(iframe); //iframe插入页面,监听事件起作用,执行代码2,获取数据 </script>


    详细信息转载自这里:
    http://www.cnblogs.com/rainman/archive/2011/02/21/1960044.html

  • 相关阅读:
    软件性能测试知识汇总
    软件功能测试知识汇总
    机器学习——KNN算法(k近邻算法)
    Shell脚本语法
    机器学习环境搭建及基础
    shell基础及变量
    查准率和召回率理解
    python中的矩阵、多维数组
    链表:反转链表
    栈和队列:生成窗口最大值数组
  • 原文地址:https://www.cnblogs.com/gaoxt/p/7606947.html
Copyright © 2011-2022 走看看