精华内容
下载资源
问答
  • 原生JS

    2018-02-02 22:50:46
    jquery太有名了,以至于大家都忘记原生js了。 jquery一般有两个用处:浏览器兼容,简化dom操作。现在浏览器更新都很快,除了IE6用的人已经很少了。 例子1,发消息 win7的IE是IE11,2013年的。 xmlhttp=new ...

    jquery太有名了,以至于大家都忘记原生的js了。

    jquery一般有两个用处:浏览器兼容,简化dom操作。现在浏览器更新都很快,除了IE6用的人已经很少了。

    例子1,发消息

    win7的IE是IE11,2013年的。
    xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange=state_Change;
    xmlhttp.open("GET","http://127.0.0.1:5000/hello/",true);
    xmlhttp.send(null);
        
        function state_Change(){
          if (xmlhttp.readyState==4)
             console.log('99999999999', xmlhttp.status, xmlhttp.responseText);
        }
        flask支持跨域也很方便,return时,加上code和http头就可以了
        @app.route('/hello/')
        @app.route('/hello/<name>')
        def hello(name=None):
         return render_template('hello.html', name=name),200,{"Access-Control-Allow-Origin":"*"}
        
        dom操作,见 http://blog.csdn.net/DUDUfine/article/details/75944536

    同步发消息更简单

    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("GET","http://127.0.0.1:5000/hello/",false);
    xmlhttp.send(null);

    console.log('99', xmlhttp.status, xmlhttp.responseText);
       

     

     

     

     

     

     

    展开全文
  • 原生js之fetch

    万次阅读 多人点赞 2020-04-08 23:17:47
    fetch不是ajax的进一步封装,是原生js。Fetch函数就是原生js,没有使用XMLHttpRequest对象,是一个全局方法。 fetch规范与jQuery.ajax()主要有三种方式的不同: 当接收到一个代表错误的 HTTP 状态码时,从fetch...

    fetch是一种HTTP数据请求的方式。fetch不是ajax的进一步封装,是原生js。Fetch函数就是原生js,没有使用XMLHttpRequest对象,是一个全局方法。

    fetch 规范与 jQuery.ajax() 主要有三种方式的不同:

    • 当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject, 即使响应的 HTTP 状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的 ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。

    • fetch() 不会接受跨域 cookies;你也不能使用 fetch() 建立起跨域会话。其他网站的 Set-Cookies 头部字段将会被无视。

    • fetch 不会发送 cookies。除非你使用了credentials 的初始化选项。(自 2017 年 8 月 25 日以后,默认的 credentials 政策变更为 same-origin。Firefox 也在 61.0b13 版本中进行了修改)

    一个基本的 fetch 请求设置起来很简单。看看下面的代码:

    fetch('http://example.com/movies.json')
      .then(function(response) {
        return response.json();
      })
      .then(function(myJson) {
        console.log(myJson);
      });

     结果返回一个Promise 对象

    返回的结果不能直接用,要用到response.json()转化,这个函数返回的结果还是一个Promise对象于是就有上边看到的情况。

    fetch() 接受第二个可选参数,一个可以控制不同配置的 init 对象:

    // Example POST method implementation:
    
    postData('http://example.com/answer', {answer: 42})
      .then(data => console.log(data)) // JSON from `response.json()` call
      .catch(error => console.error(error))
    
    function postData(url, data) {
      // Default options are marked with *
      return fetch(url, {
        body: JSON.stringify(data), // must match 'Content-Type' header
        cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
        credentials: 'same-origin', // include, same-origin, *omit
        headers: {
          'user-agent': 'Mozilla/4.0 MDN Example',
          'content-type': 'application/json'
        },
        method: 'POST', // *GET, POST, PUT, DELETE, etc.
        mode: 'cors', // no-cors, cors, *same-origin
        redirect: 'follow', // manual, *follow, error
        referrer: 'no-referrer', // *client, no-referrer
      })
      .then(response => response.json()) // parses response to JSON
    }

    配置参数查看地址

    https://developer.mozilla.org/zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/fetch

     

    更多详细内容

    https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API/Using_Fetch

     

     

     

    展开全文
  • 原生js日历

    千次阅读 2018-08-23 10:08:24
    js原生日历 参考文献: [1] js实现日历的简单算法 [2] 创建一个js日历(原生JS实现日历)

    原生js日历

    demo效果:

    这里写图片描述

    实现日历的思路:

    1、利用new Date()获取今天日期

    2、判断今年是平年还是闰年,确定今年每个月有多少天

    3、确定今天日期所在月的第一天是星期几

    4、计算出日历的行数

    5、利用今天日期所在月的天数与该月第一天星期几来渲染日历表格

    6、左右切换月份

    源码:

    • html
    <div class="calendar-container">
        <div class="calendar-header">
            <div class="left btn">&lt;</div>
            <div class="year"></div>
            <div class="right btn">&gt;</div>
        </div>
        <div class="calendar-body">
            <div class="week-row">
                <div class="week box"></div>
                <div class="week box"></div>
                <div class="week box"></div>
                <div class="week box"></div>
                <div class="week box"></div>
                <div class="week box"></div>
                <div class="week box"></div>
            </div>
            <div class="day-rows">
                <!--日期的渲染的地方-->
            </div> 
        </div>
    </div>
    
    • css
    .calendar-container{
        width: calc(31px*7 + 1px);
    }
    .calendar-header{
        display: flex;
        justify-content: space-between;
    }
    .year{
        text-align: center;
        line-height: 30px;
    }
    .btn{
        width: 30px;
        height: 30px;
        text-align: center;
        line-height: 30px;
        cursor: pointer;
    }
    .calendar-body{
        border-right: 1px solid #9e9e9e;
        border-bottom: 1px solid #9e9e9e;
    }
    .week-row, .day-rows, .day-row{
        overflow: hidden;
    }
    .box{
        float: left;
        width: 30px;
        height: 30px;
        border-top: 1px solid #9e9e9e;
        border-left: 1px solid #9e9e9e;
        text-align: center;
        line-height: 30px;
    }
    .week{
        background: #00bcd4;
    }
    .day{
        background: #ffeb3b;
    }
    .curday{
        background: #ff5722;
    }
    
    • js
    // 获取今天日期
    let curTime = new Date(),
        curYear = curTime.getFullYear(),
        curMonth = curTime.getMonth(),
        curDate = curTime.getDate();
    console.log(curTime, curYear, curMonth, curDate)
    
    // 判断平年还是闰年
    function isLeapYear(year){
        return (year%400 === 0) || ((year%4 === 0) && (year%100 !== 0))
    }
    
    function render(curYear, curMonth){
        document.querySelector('.year').innerHTML = `${curYear}${curMonth + 1}月`;
    
        // 判断今年是平年还是闰年,并确定今年的每个月有多少天
        let daysInMonth = [31, isLeapYear(curYear) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    
        // 确定今天日期所在月的第一天是星期几
        let firstDayInMonth = new Date(curYear, curMonth, 1),
            firstDayWeek = firstDayInMonth.getDay();
        
        // 根据当前月的天数和当前月第一天星期几来确定当前月的行数
        let calendarRows = Math.ceil((firstDayWeek + daysInMonth[curMonth])/7);
    
        // 将每一行的日期放入到rows数组中
        let rows = [];
    
        // 外循环渲染日历的每一行
        for(let i = 0; i < calendarRows; i++){
            rows[i] = `<div class="day-row">`;
            // 内循环渲染日历的每一天
            for(let j = 0; j < 7; j++){
                
                // 内外循环构成了一个calendarRows*7的表格,为当前月的每个表格设置idx索引;
                // 利用idx索引与当前月第一天星期几来确定当前月的日期
                let idx = i*7 + j,
                    date = idx - firstDayWeek + 1;
                
                // 过滤掉无效日期、渲染有效日期
                if(date <= 0 || date > daysInMonth[curMonth]){
                    rows[i] += `<div class="day box"></div>`
                }else if(date === curDate){
                    rows[i] += `<div class="day box curday">${date}</div>`
                }else{
                    rows[i] += `<div class="day box">${date}</div>`
                }
            }
            rows[i] += `</div>`
        }
        let dateStr = rows.join('');
        document.querySelector('.day-rows').innerHTML = dateStr;
    }
    
    // 首次调用render函数
    render(curYear, curMonth);
    
    let leftBtn = document.querySelector('.left'),
        rightBtn = document.querySelector('.right');
    
    // 向左切换月份
    leftBtn.addEventListener('click', function(){
        curMonth--;
        if(curMonth < 0){
            curYear -= 1;
            curMonth = 11;
        }
        render(curYear, curMonth);
    })
    
    // 向右切换月份
    rightBtn.addEventListener('click', function(){
        curMonth++;
        if(curMonth > 11){
            curYear += 1;
            curMonth = 0;
        }
        render(curYear, curMonth);
    })
    

    小结:

    1、为了实现左右切换月份,将日历日期渲染代码放入到了render函数,方便月份切换后重新渲染;

    2、确定当前月的行数时,要结合当前月的天数与当前月第一天星期几来共同确定;

    3、原生js日历中比较核心的就是如何确定每一天的日期,在这儿利用了内外循环,内外循环构成了一个calendarRows*7的表格,为当前月的每个表格设置idx索引;利用idx索引与当前月第一天星期几来确定当前月的日期;记得要过滤掉无效日期!!!

    参考文献:

    [1] js实现日历的简单算法
    [2] 创建一个js日历(原生JS实现日历)

    展开全文
  • 原生js读取json文件

    万次阅读 多人点赞 2019-05-23 14:43:32
    2.js读取json文件 3.我的文件位置 4.用Ajax也是可以的 $.ajax({ url: "demo.json",//json文件位置,文件名 type: "GET",//请求方式为get dataType: "json", //返回数据格式为json success: ...

    注:浏览器是肯定不能获取用户浏览器客户机的本地文件的,所以这个json文件和html文件是放在一个tomcat上或者nginx上的,否则会出现跨域问题

    1.首先编写一个json文件:demo.json

    [ 
    { 
    "name":"张三", 
    "sex":"男", 
    "email":"zhangsan@123.com" 
    }, 
    { 
    "name":"李四", 
    "sex":"男", 
    "email":"lisi@123.com" 
    }, 
    { 
    "name":"王五", 
    "sex":"女", 
    "email":"wangwu@123.com" 
    } 
    ] 

    2.js读取json文件

    <script>
    		window.onload = function () {
                var url = "demo.json"/*json文件url,本地的就写本地的位置,如果是服务器的就写服务器的路径*/
                var request = new XMLHttpRequest();
                request.open("get", url);/*设置请求方法与路径*/
                request.send(null);/*不发送数据到服务器*/
                request.onload = function () {/*XHR对象获取到返回信息后执行*/
                    if (request.status == 200) {/*返回状态为200,即为数据获取成功*/
                        var json = JSON.parse(request.responseText);
                        for(var i=0;i<json.length;i++){
                        	console.log(json[i].name);
                        }
                        console.log(json);
                    }
                }
           }
    	</script>

    3.我的文件位置

    4.用Ajax也是可以的

    <script type="text/javascript">
        var Ajax = function ()
        {
            $.getJSON ("demo.json", function (data)
            {
                $.each (data, function (i, item)
                {
                   console.log(item.name);
                });
            });
        }();
    </script>
    $.ajax({
    				url: "demo.json",//json文件位置,文件名
    				type: "GET",//请求方式为get
    				dataType: "json", //返回数据格式为json
    				success: function(data) {//请求成功完成后要执行的方法 
    				   //给info赋值给定义好的变量
    				   var pageData=data;
    				   for(var i=0;i<data.length;i++){
    					   console.log(pageData[i].name);
    				   }
    				}
    			})

     

    展开全文
  • 原生 JS总结

    千次阅读 2019-04-19 14:28:08
    =============== 通知: ...! -------------------在此谢过!----------- ...前言:随着前端市场日新月异的发展,现如今的市场要的不只是会切切图的小仔、小妹了,而是需要真正懂原生js闭包,继承,原...
  • 原生js打印插件Print.js

    万次阅读 2017-11-03 14:18:50
    以下是在Jquery插件库中找到的一款原生js打印插件,代码清洁简单,封装的代码也很好理解。index.html页面代码<!doctype html> <html> <head> <meta charset="UTF-8"> <title&...
  • 原生JS实现贪吃蛇游戏

    千次阅读 热门讨论 2020-12-19 09:10:56
    原生JS实现贪吃蛇游戏 贪吃蛇游戏(原生JavaScript) 贪吃蛇游戏思路分析 游戏思想: 面向对象的思想 三个js文件分别代表三个对象 三个对象相互独立,在HTML中控制全局 使用面向对象思想的好处 贪吃蛇游戏采用面向对象...
  • <!DOCTYPE html> <... <head> ...meta charset="utf-8" />...原生js彩色星星喷射特效</title> </head> <style type="text/css"> * { padding: 0; margi...
  • vue 可以写原生js getelementbyid vue 可以写原生js getelementbyid
  • 原生JS与其他JS 区别

    千次阅读 2016-12-29 11:00:28
    1.原生js就是javascript ,也是网站前端核心内容,主要操作流程是,先获得DOM或切换DOM,然后修改DOM对象的属性或调用DOM对象的方法,存在的主要问题是低版本IE兼容性问题及复杂的DOM操作,高端研究人员必修 ...
  • 原生JS分页

    2018-11-03 18:03:45
    原生JS分页首先我们先捋顺一下分页的思路代码开始先上一下最终的效果图首先写html,写一个table用来显示数据,一个ul用于分页,图:css:动态改变共多少页,第几页页码标签改变效果动态改变当前页码效果上下翻页首页...
  • 原生js实现http请求

    万次阅读 2019-01-15 19:45:11
    有时页面用到请求,但又不想引入jquery,那不使用ajax情况下,可以直接使用原生js进行封装函数。原生的js通过XMLHttpRequest 对象进行的的。具体可查阅W3school的XMLHttpRequest 对象。 1、封装可供请求调用的...
  • 原生JS面试题

    千次阅读 2019-03-29 20:41:00
    面试中遇到的原生js题总结 1、js 去重1) indexOf Array.prototype.unique = function(){ var result = []; var len = this.length; for(var i = 0; i<len; i++){ if(result.indexOf(this[i])&...
  • html原生js请求

    2020-05-22 17:35:21
    原生js,ajax请求 demo POST请求 GET请求 <script type="text/javascript"> //post请求 document.querySelector(".postbtn").οnclick= function(){ var xmlhttp = new XMLHttpRequest();
  • 原生JS实现加载进度条

    千次阅读 2019-07-28 20:25:50
    分享一个原生JS实现的动态加载进度条特效,效果如下: 实现的代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ...
  • 原生js封装轮播图

    千次阅读 2020-12-27 08:51:51
    工作原因,好久没更新博客了,今天来个用原生js写轮播图, 上代码 class Banner { constructor(props = {}) { if (!(props?.root instanceof HTMLElement)) { throw "root是必选dom节点"; } // 状态 this....
  • 原生js数组拉平

    千次阅读 2018-10-13 00:32:38
    一个原生js数组拉平小技巧 给大家分享一个自己写的原生js数组拉平,由于是Array原型链的扩展,只要引入代码后,数组都能调用到这个方法 Array.prototype.flatArr = function(){ var arr = []; //定义hanle函数方便...
  • 原生JS获取body

    2019-11-26 14:13:11
    原生js获取body 的方法 第一种: let s = `hello` document.getElementsByTagName("body")[0].innerHTML = s 第二种: let s = `hello` document.body.innerHTML = s 点个赞呗~
  • 原生js与JQuery的ajax请求

    千次阅读 多人点赞 2020-08-13 11:52:08
    原生js的ajax请求 1.创建XMLHttpRequest对象 var xhr=new XMLHttpRequest(); 2.准备发送请求 open() xhr.open('请求类型','url地址',是否异步); 参数 描述 请求类型 GET 或 POST url 文件在服务器上的...
  • 原生js实现动画过渡效果

    千次阅读 多人点赞 2020-01-15 21:23:59
    原生JS实现动画过渡效果原理 一般情况实现动画效果可以采用CSS3里的transition属性实现动画过渡。但如果有需求只能采用原生JS的情况下可以采用JS里的定时器功能。当然还有很多可以实现动画效果的方法。因为本人初步...
  • 原生js使用js-xlsx插件

    千次阅读 2018-08-02 19:42:43
    前言 要实现一个前端解析excel表格,填充页面table表格的功能,但是因为环境的原因只能使用原生js和jQuery。 主要代码 &amp;amp;amp;amp;lt;script src=&amp;amp;amp;quot;.../script
  • 使用原生js实现简单动画效果

    千次阅读 多人点赞 2019-06-22 19:44:57
    使用原生js实现简单动画效果 我们知道,借助jQuery提供的animate方法,我们可以很容易实现一些常见的js动画效果。而对于颜色等无法用数值直接表示的样式,我们可以通过引入一些jQuery插件来实现。但是随着前端组件化...
  • 原生js数组排序

    千次阅读 2019-02-01 17:41:33
    原生js数组排序 js 排序 以正序为例(即由小到大) var arr = [0,2,1,4,3,9,6,5,7,8]; // 未排序的数组 var sortArr = null; // 排序后得到的数组 1 sort排序 sortArr = arr.sort(function (a,b) { return a - b ...
  • 利用原生JS写简单计算器

    千次阅读 2020-10-05 21:04:00
    利用原生JS写简单计算器 利用原生JS来写一个简单的计算器,其中主要是对利用JS新建标签和鼠标事件的应用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta ...
  • 采用原生JS及CSS 3.0实现一个金字塔的效果,这个特效在实际工作中用处不大,纯属娱乐。 实现代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>原生...
  • 原生JS获取cookie

    千次阅读 2018-11-16 19:55:33
    原生JS获取cookie var name = "ucenterKey"; var ucenterKey; var strcookie = document.cookie;//获取cookie字符串 var arrcookie = strcookie.split("; ");//分割 //遍历匹配 for ( var ...
  • 原生js自动生成表格

    千次阅读 2019-04-10 16:27:07
    原生js自动生成表格 直接上代码,代码注释很清楚了。 <div id="demo"></div> <script> //原生js表格绑定 var hxj_table = { headers:{}, data:[], style:{ table:{ width:'auto...
  • 原生 JS 实现飘雪效果

    千次阅读 2019-02-15 19:57:46
    一、前言 大家也许见过到以下场景: 1. 逢年过年或活动日,各大网站(淘宝,...本文用原生 JS 简单实现一个漫天飘雪的效果。 二、整理思路 1. 动态增加 div; 2. div 每10秒下降3px;透明度减少0.003; 3. ...
  • 由于我在学校是学安卓的然后实习期学前端又是直接上框架,所以原生JS的一些基本操作用着真难受!!! 下面是原生JS 将数组的数据循环遍历到HTML中的列子,是的,没有用框架的HTML里的循环是用JS将一串字符串标签丢给...
  • 原生js实现AJAX

    千次阅读 2018-10-26 14:44:39
    原生JS使用AJAX使用代码,代码如下 var xhr1 = new XMLHttpRequest; xhr1.open(&quot;POST&quot;, 'http://47.92.121.171:17788', true); xhr1.setRequestHeader('Content-type', 'application/x-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,303
精华内容 17,321
热门标签
关键字:

原生js