最近项目的前端使用了jQuery,表单的前端验证用的是jQuery Validate,用起来很简单方便,一直都很满意的。 前段时间,根据需求为表单中的 textarea 类型的元素加上了html富文本编辑器,用的是CKEditor,功能强大,定制方便,也很满意。 不过用CKEditor增强过的 textarea 元素,这个字段要求是非空的,在jQuery Validate总是验证不通过,原因就是在 CKEditor 编辑器填写了内容之后,编辑器并不是立即把内容更新到原来的 textarea 元...
引言 跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功之一。和大多数跨域的解决方案一样,JSONP也是我的选择,可是某天PM的需求变了,某功能需要改成支持POST,因为传输的数据量比较大,GET形式搞不定。所以折腾了下闻...
本文实例为大家分享了js事件处理程序跨浏览器解决方案,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div><input type="button" id="button1" value="按钮" /> </div> <script type="text/javascript">function show(){alert("Hello world!");}//声明一个对象var eventUtil={//添加句柄addHandler:function(element,type,handler){//DOM2级事件处理判断if(e...
本人需要给bootstrap-treeview的树节点添加双击事件。而该插件原生方法中不带双击事件功能。该插件的节点默认绑定的单击事件,由此引起了单击事件和双击事件的冲突。 编写测试代码 引起冲突的代码:问题效果展示:每一次触发双击事件都会引起两次单击事件 解决冲突的代码:解决问题效果展示:完美解决单击事件和双击事件冲突问题 这里主要用到两个HTMLDOMWindow对象中函数,settimeout(),clearTimeout()我这里两个单击事件触发的时...
1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合. 例如:2.实现原理 在HTML DOM中,Script标签是可以跨域访问服务器上的数据的.因此,可以指定script的src属性为跨域的url,从而实现跨域访问. 例如: 这种...
首先给大家展示效果图:JS代码: <!--[if IE 6]> <script src="~/Scripts/UI/DD_belatedPNG.js"></script> <script> $(function () { //1、通过公共类 DD_belatedPNG.fix(".pngFix,.pngFix:hover"); //2、直接用选择器:类名,ID,标签 DD_belatedPNG.fix(".imgpng,img"); }); </script> <![endif]--> html代码: <div class="contain"> <h1>DD_belatedPNG实现IE6下的透明背景</h1> <div class="con"> <h2>1、通过公共类pngFix</h2...
代码需求, 使用attr只能执行一次,使用prop则完美实现全选和反选,获取所有选中的项并把选中项的文本组成一个字符串。解决方案一: 代码如下: <html> <head><script src="jquery-1.11.1.min.js" type="text/javascript"></script> </head> <body><input type="checkbox" name="chk_list[]" value="1" />1<input type="checkbox" name="chk_list[]" value="2" />2<input type="checkbox" name="chk_list[]" value="3" />3<input t...
用jquery添加新元素很容易,面对jquery append 动态添加的元素事件on 不起作用我们该如何解决呢?on方法中要先找到原选择器(如例.info),再找到动态添加的选择器(如列.delete)。 具体不多说了,请看下面的代码吧。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>测试</ti...
通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径“/test”的函数。下面把具体解决方案介绍如下。 后台处理路径“/test”的函数:代码如下: //路径处理 app.get("/test",user.test); //处理函数 exports.test=function(req,res){ res.end("alert(JS跨域访问)"); }; 外部有一个网页需要访问路径”/test“下的内容,则可以通过JS脚本文件来跨域访问:代码如下: //处理函数 <script> function method(...
我想实现的目标:当鼠标进入黑色框时,橙色框执行淡入动画;当黑色框范围移动的时候(即使经过粉色框,动画仍然不被触发);当鼠标移出的时候,橙色方块消失。 遇到的问题阐述:当鼠标移入黑色框的时候,橙色框执行淡入动画,但是当鼠标从黑色框经过粉色框的时候,橙色框就消失了,然后又执行一遍淡入动画。当鼠标从粉色框移出到黑色框的时候,橙色框的淡入动画又被执行。这不是我想要的。 初期代码: <!DOCTYPE html> <html> <hea...
产生跨域问题的原因 跨域问题是浏览器同源策略限制,当前域名的js只能读取同域下的窗口属性。 跨域问题产生的场景 当要在在页面中使用js获取其他网站的数据时,就会产生跨域问题,比如在网站中使用ajax请求其他网站的天气、快递或者其他数据接口时以及hybrid app中请求数据,浏览器就会提示以下错误。这种场景下就要解决js的跨域问题。 XMLHttpRequest cannot load http://你请求的域名. No Access-Control-Allow-Origin header is...
这几天看了Amy老师的用javascript实现瀑布流,我跟着把代码敲出来。发现这样写只能第一次载入时适应屏幕,以后改变窗口大小就不能做到自适应了。于是我想到了用window.onresize来使得瀑布流函数从新加载来达到目的,代码如下: window.onload=function(){ //瀑布流函数 waterfall(content,box); //模拟数据加载 var dataInt = {"data":[{"src":"01.jpg"},{"src":"02.jpg"},{"src":"03.jpg"},{"src":"04.jpg"},{"src...
我们先来看看这个bug 是怎么产生的。代码如下: <style type="text/css"> #div1 { width: 200px; height: 200px; background: red; } </style>代码如下: <body> <div id="div1"> </div> </body>以下是用来测试的Javascript代码 ,目的是 让div慢慢变窄。代码如下: <script type="text/javascr...
Javascript 引擎的单线程特性使得在处理一个较大的循环遍历时会长时间独占线程,导致其它事件(例如用户操作)无法及时响应,严重时造成卡顿甚至是假死现象。为解决上述问题,一种可行机制是将大的循环拆分成若干小的循环片段分片执行,使得Javascript 引擎有时机在各段之间插入执行其它事情,从而有效改善性能体验 Ansync.js代码如下: function Ansync (totalCount, segmentCount, workCallback, returnCallback) { var num_o...
这种情况精简后查错的方法:打开IE的脚本错误提示,然后打开调用JS的HTML页面,它会报告缺少分号的所在位置,然后用UE打开精简后JS文件,转到相应位置加上分号,再找到未精简的JS代码中对应的位置加上分号。 例如:代码如下: var a=1 var b=2改为:代码如下: var a=1; var b=2;◆尽量在else后面的语句使用大括号 这种情况查错起来比较麻烦,通过正则表达式 else[a-zA-Z0-9]+ 来查找精简后的JS文件,或者查找else后面是否有注释的行...