
JavaScript
GAMELOFT9
读万卷书,行万里路,知行合一。
展开
-
避免360浏览器极速模式自动填充表单
问题在表单里面有API密钥和证书密钥两个字段,刚好一个type=text,一个type=password,360以为是登录用户名和密码字段,进行了自动填充,如下所示:解决方案网上解决方案有很多,有的可行,有的不行。我试了好几种,现记录下成功的这一种。方法就是:将被自动填充的type=text那一个input的readonly设置为true,然后页面初始化的时候,延时一小段时间,再将其设置为...原创 2019-11-27 16:03:12 · 926 阅读 · 0 评论 -
微信支付宝页面点击返回后关闭
需求背景在支付完成页面后,如果用户点击返回按钮,会返回到继续支付的页面。既然已经完成支付了,那么在用户点击返回按钮之后,就可以关闭页面了,这才是合理的做法。所以我们的目的就是,监听用户的页面返回事件,然后关闭页面。监听返回事件js里面有一个popstate事件,当页面返回时会触发这样一个事件。微信支付宝里,直接的监听该事件,在返回按钮点击时,并不能真正的触发popstate事件。需要通过pu...原创 2019-10-30 15:51:32 · 1159 阅读 · 0 评论 -
仅用原生JavaScript手写DOM事件模型
前言前段时间博客园里有篇很火的帖子2016十家公司前端面试小记,主要讲作者的前端面试经历,其中提到了面试官会考察手写一个简单的DOM事件模型。“如果上述都ok的话,那么极有可能要求让你【实现事件模型】,即写一个类或是一个模块,有两个函数,一个bind一个trigger,分别实现绑定事件和触发事件,核心需求就是可以对某一个事件名称绑定多个事件响应函数,然后触发这个事件名称时,依次按绑定顺原创 2016-04-29 11:35:49 · 8672 阅读 · 1 评论 -
基于layui2.x的通用后台管理系统
一、概述 之前的spring集成系列文章中spring集成shiro权限控制一文最后提到了通用的mvc框架和前后端分离方案。在准备前后端分离方案demo的时候,纠结于选择哪个前端框架。对于后端开发人员来说,Angular和Vue都过于专业化了,需要额外的精力去学习。这个时候刚好看到了layui框架(http://www.layui.com/),惊叹于它的优美和易用,而且是基于jQu...原创 2018-01-15 09:58:36 · 59233 阅读 · 74 评论 -
js跨域问题的三种解决方案
概述跨域问题在分布式应用中经常会遇到,这里仅仅介绍跨域的三种解决方案,对跨域的概念及原因不做解释,感兴趣的朋友可以网上自行百度。Nginx代理这种方式比较简单,将A应用和B应用都通过一个统一的地址进行转发,这样就可以避免跨域问题出现。server { listen 80; server_name www.gameloft9.top; ...原创 2018-03-01 11:19:24 · 15516 阅读 · 0 评论 -
vue中使用百度echart图表大小问题
在项目中需要通过百度echarts的仪表盘来展示测试的成功率,自己封装了个gauge的vue组件,展示出来的时候发现大小不对,整个图像被限制在了一个很矮的区间内,如下图所示: 组件文件如下:<template> <!--单独生成id,避免实例化时使用同一个div--> <div style="height:100%;widt...原创 2018-07-18 15:17:42 · 2938 阅读 · 0 评论 -
虚拟数字键盘
虚拟数字键盘背景移动端的浏览器中,input元素的自动聚焦并弹起系统键盘很难做到统一,一是IOS系统下的浏览器,非真实的用户交互,是无法弹起系统键盘的,通过js模拟也不行。二是某些浏览器下,input的输入光标会没有,使得用户体验不佳。目标1、进入页面时就自动聚焦到input上,并弹出数字键盘。2、input输入带光标3、提供通用的配置入口4、额外的校验逻辑,例如正确的金额格式校验...原创 2019-01-18 16:01:21 · 1429 阅读 · 0 评论 -
实现输入框自带清除按钮
输入框自带清除按钮是很常见的需求了,网上有很多方案,最基础的是原生实现input和清除按钮,然后绑定一大堆事件,此种方案非常原始,而且复用性极差。稍微好点的方案有基于bootstrap和jQuery的,将input和清除按钮集成起来,但样式依赖bootstrap,加重了文件引入数,而且很容易有jQuery版本不兼容的问题。这里提供一个插件,仅依赖jQuery,我们实现的功能有:1、以一种很简单的...原创 2019-05-20 19:12:59 · 2931 阅读 · 0 评论 -
如何判断ellispsis生效了
主要内容要让文本超过长度后,截取显示并附上省略号,可以通过如下的css代码实现: text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width:100px;有时候,我们需要根据文本是否省略做一些别的事情,例如显示一个展开按钮。现在是CSS控制文本省略了,如何检测到呢?废话不多说,直接通过文本元素的clie...原创 2019-08-07 16:42:52 · 2036 阅读 · 0 评论 -
window.name跨域通讯小坑一记
工作中有这么一个需求,在支付完成之后,延迟3秒跳转到商户的广告页面。在广告页面通过返回按钮,可以再次返回到支付完成的详情页面,但此时延迟3秒后不会再次跳转到商户广告页面。很明显,需要存一个标记,表示是否已经跳转过了。当时觉得window.name应该就可以胜任这个任务。window.name我们在js里面随时可以获取window对象,window对象有一个name属性,如下所示:这个na...原创 2019-09-17 15:51:30 · 445 阅读 · 0 评论 -
定义提升(1)
在《JavaScript权威指南》第六版的4.3和5.3中分别讲了函数的两种定义方式,如下所示:函数声明:function foo(){}函数表达式:var foo= function(){}两者的区别在于函数声明的方式会将函数声明提升到顶部,这样所有的代码都可以访问到它,而函数表达式的方式则不可以。先看下面两个例子:例子1: foo();//成功 func原创 2016-02-25 14:27:09 · 573 阅读 · 0 评论 -
定义提升(2)
在上一篇文章中,对变量声明和函数声明的定义提升进行了一个简要的说明,这里对其后面的运行机制再进行深一步的讨论。 其实定义提升是执行上下文代码的过程的一个很自然的结果。执行上下文(Execute Context)每次当控制器转到ECMAScript可执行代码的时候,就会进入到一个执行上下文(EC)。执行上下文按类型可以分为全局执行上下文和函数执行上下文。执行上下文在逻辑原创 2016-02-25 17:05:28 · 505 阅读 · 0 评论 -
KnockoutJS简介
一、概述 KO是一个JavaScript库,它可以帮助你基于底层数据模型创建丰富的,能快速显示和可编辑的UI。任何时候UI的动态更新(例如用户操作或者外部数据源改变导致的变化),KO都可以将其实现得更加简单而且更容易维护。二、总体特征1.优雅的依赖跟踪------当数据模型改变后自动更新UI2.声明式绑定-------以一种简单和显而易见的方式将UI和数据模型翻译 2015-03-26 17:21:26 · 1168 阅读 · 0 评论 -
$.extend 函数详解
JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。 一、Jquery的扩展方法原型是: extend(dest,src1,src2,src3...); 它的含义是将src1,src2,src3...合并到dest中,返回值为合并转载 2015-03-30 10:26:58 · 792 阅读 · 0 评论 -
Deferred对象
Deferred对象是由$.Deferred构造的,$.Deferred被实现为简单工厂模式。它用来解决JS中的异步编程,它遵循 Common Promise/A 规范。实现此规范的还有 when.js 和 dojo。 $.Deferred作为新特性首次出现在版本1.5中,这个版本利用Deferred又完全重写了Ajax模块。$.Deferred在jQuery代码自转载 2015-03-30 20:16:02 · 656 阅读 · 0 评论 -
KO中的foreach绑定
一、目的foreach绑定为数组中的每个元素复制一系列标记,并将标记绑定到对应的数组元素上。这对于绘制list和table非常有用。如果数组是一个observable数组,当添加,删除,或者重排序数组元素时,foreach绑定可以非常高效的更新UI来匹配---通过插入或删除标记,或者重排序DOM元素来实现,而且不会影响到其他DOM元素。这比数组改变后重新生成所有标记要快得多。当然,你可以在翻译 2015-04-22 11:18:04 · 7364 阅读 · 0 评论 -
JQuery的ajax方法
一、概述 Ajax只不过是一种无需刷新页面即可从服务器(或客户端)上加载数据的手段。 其中$.ajax 方法的作用是通过 HTTP 请求加载远程数据。该方法是 jQuery 底层Ajax实现。在其基础之上还有$.load、 $.get、 $.getjson、 $.post几个方法,但它们没有$.ajax控制粒度细。 在讲解$.ajax方法之前,有必要对XMLHttpReque原创 2015-04-29 09:41:21 · 1004 阅读 · 0 评论 -
KO中的if绑定
一、目的if绑定在指定的表达式为真时(或者非空对象和非空字符串),让html标签显示并让它的绑定属性起作用。if绑定扮演着和visible绑定类似的角色。不同之处在于,visible绑定中,标签始终在DOM中,并且绑定一直在起作用,只是让该标签变得不可见而已。if绑定会真正的添加或删除标签,并根据表达式的真假,应用绑定属性。二、例子1.这个例子根据checkbox的选择状态是否显示一段翻译 2015-04-29 15:38:15 · 3781 阅读 · 0 评论 -
网页播放flv视频
一、概述 之前做过带有流媒体服务的网站,可以对外提供视频服务。大致做法是利用windows meida server作为本地流媒体服务器,然后在IIS中添加相应的MIME类型,接下来就可以用respons.redirect()的方式重定向到需要播放的视频(视频文件存放在网站的video目录下)就可以直接播放了。但是这是有缺点的,主要表现在视频格式和浏览器的兼容性上面。视频格式种类有原创 2015-03-15 19:31:18 · 1935 阅读 · 0 评论 -
JavaScript中的_proto_与prototype的关系
注:本文整理自网络,有修改,原文链接请参考文章末尾。这里我先借鉴一张图(可以读完再来看这张图): function能够调用的prototype一般被定义为“对象原型的引用”,有的人也说是"实例"(一开始我以Java的理念理解,真是把我搞醉了)。我对于prototype的理解就是“爸爸”,也就是对象的模子。当我们对prototype添加属性的时候"模子"会改变它的形状,以后转载 2015-09-10 11:42:02 · 814 阅读 · 0 评论 -
Ajax状态码
在《Pragmatic Ajax A Web 2.0 Primer 》 0: (Uninitialized) the send( ) method has not yet been invoked. 1: (Loading) the send( ) method has been invoked, request in progress. 2: (Loaded) the sen转载 2015-09-10 17:50:08 · 428 阅读 · 0 评论 -
prototype简介
函数:原型每一个构造函数都有一个属性叫做原型(prototype,下面都不再翻译,使用其原文)。这个属性非常有用:为一个特定类声明通用的变量或者函数。prototype的定义你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在。你可以看看下面的例子:Example PT1CODE:function Test(){}alert(Test转载 2015-03-26 15:40:52 · 646 阅读 · 0 评论