JavaScript
文章平均质量分 53
橙橙鲁
作为一个前端人,无论工作跑偏到哪,始终不忘初心。
展开
-
页面无限刷新问题,解决分析问题思路整理
问题背景描述:网站在放置很久没有打开,中间没有清过缓存、cookie,再次刷新打开页面,出现无限不断重新刷新页面的问题。而清除浏览器缓存后,问题会被解决。问题解决思路:由于大家遇到的问题是各不相同,所以记录下解决问题的思路,希望对同陷问题漩涡的伙伴们有所启发。排查一:先观察页面,确定了页面是在不同重新大刷新,由此猜测,很可能是代码中有一直调用window.location.reload()导致。由此在项目中全局搜索reload()关键字,逐个分析逻辑。排查二:在开发者工具中,看netw原创 2021-03-07 15:12:31 · 14525 阅读 · 0 评论 -
postMessage 跨域通信 iframe
需求背景:iframe嵌套页面,需要进行参数传递,同时父与子是跨域(跨源)的。核心方法:window.postMessage() 方法可以安全地实现跨源通信。otherWindow.postMessage(message, targetOrigin, [transfer]);otherWindow其他窗口的一个引用,比如iframe的contentWindow属性、执行window.open返回的窗口对象、或者是命名过或数值索引的window.frames。message将要发送到其他原创 2020-07-15 16:13:46 · 928 阅读 · 0 评论 -
cookie的get、set方法封装 & domain、path 属性
设置cookie方法:原理:document.cookie='name=wk'注:cookie在静态页面中是空的,无法使用;必须在web服务器部署下才可以使用。/** * 设置cookie * @param name 键 * @param val 值 * @param exday 有效期(天) */function setCookie (name, val, exday) {...原创 2020-04-01 15:46:01 · 3256 阅读 · 0 评论 -
AJAX 原生学习笔记
AJAX 是 Asynchronous JavaScript and XML 的缩写,直译就是异步的js和XML。含义: 不重新加载整个页面的情况下,与服务器交换数据并更新部分网页。知识点: XMLHttpRequest对象是 AJAX 基础。 现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。原生使用流程: 1.创建...原创 2018-04-23 14:55:03 · 417 阅读 · 0 评论 -
Js 继承_学习笔记
js是面向过程语言,本身不存在继承。继承,就是共享属性和方法,b继承a,就是在b上找一个属性,找不到再去a中找 原型对象 & prototype属性 & __proto__每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象(即:原型对象),所有对象实例共享他所包含的属性和方法。【这即是原型模式的思想】 而所有原型对象都有一个co...原创 2017-05-10 18:58:02 · 1513 阅读 · 0 评论 -
切换tab页,页面局部刷新,地址栏路径修改
需求:做一个类似百度这种,切换tab,页面展示局部刷新的效果。思路:tab展示的切换,使用display控制。但是,如果页面刷新,则无法保留显示在tab2的效果,因而在地址栏加参数标记。但如果用a的href或者location.href 均会将整个页面刷新,体验很差,故需只修改地址栏路径,但不刷新页面。解决:在切换tab时,先处理隐藏显示区域的内容,再将地址栏的内容...原创 2018-11-16 09:03:29 · 4541 阅读 · 0 评论 -
js 引用类型与深拷贝
基本数据类型:undefined,null,string,boolean,number在console中可以通过typeof看到,如:引用类型:Object,Array,Date,RegExp,Function,基本包装类型(Boolean,Number,String),内置对象(Global,Math)。引用类型可以在控制台直接敲出对象名,如:深拷贝与浅拷贝一般的...原创 2019-01-22 17:46:04 · 729 阅读 · 0 评论 -
Js 实现剪切板复制功能
方法一:使用原生Js,核心方法document.execCommand("Copy");自测可以使用的浏览器:ie9+,Chrome71,firefox63,360,Edge(Safari5不能使用)<textarea id="te原创 2019-02-28 18:08:06 · 3933 阅读 · 0 评论 -
js金额处理【四舍五入& 保留n位小数】【输入限制】
toFixed()方法保留两位n为小数针对toFixed方法有时四舍五入,有时五舍六入。测试代码:var num = 0.005;console.log(num.toFixed(2));var num = 0.015;console.log(num.toFixed(2));var num = 0.025;console.log(num.toFixed(2));var num =...原创 2019-02-19 17:27:56 · 2332 阅读 · 2 评论 -
融云获取历史会话列表getHistoryMessages报错
在切换融云正式账号后,web端的获取历史会话列表的方法一直报错。RongIMLib.RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, timestrap, count, { onSuccess: function(list, hasMsg) { ...原创 2019-03-12 17:48:40 · 3906 阅读 · 0 评论 -
JavaScript递归 & 组装无限嵌套循环的数据
JavaScript递归理解函数自己调用自己。递归中有调用结束的条件,当达到调用结束的条件后,会在一层一层向上返回。循环和递归的区别Js递归调用方法 Js递归调用例子原创 2019-04-22 18:06:52 · 2072 阅读 · 1 评论 -
JS 相加精度问题
现象:就是类似81.6+1.6 相加,结果会变成83.19999999999999,不等于83.281.6和1.6都是Number类型的。试了1到100的,有的有此情况有的没有。暂时规避解决方法:四舍五入保留n位小数。function toDecimal(v,num,isZeroFill) { var f = parseFloat(v); if (isNaN(f)) { ...原创 2019-04-23 11:22:18 · 5551 阅读 · 0 评论 -
富文本编辑器 禁止粘贴 图片 clipboardData
需求背景:在富文本编辑器,粘贴文章时,禁止直接将图片和文字一起copy进去,以规避一些可能的问题。解决思路:在粘贴时,判断是否有图片,然后提示。这里用到和粘贴相关的事件:onpaste。获取粘贴板内容的方法:IE:window.clipboardData (仅ie有这个对象)chrome等:e.clipboardData || e.originalEvent.clipboardDa...原创 2019-06-06 17:19:25 · 6402 阅读 · 1 评论 -
使用微博登录,按钮点击不动(微博jssdk)
对接第三方登录-微博,遇到的问题:按照https://open.weibo.com/widget/loginbutton.php 文档加入代码,按钮样式出现了,但始终点击不动。继续仔细看api找遗漏,后来发现看的这个文档比较简约,应该取看jssdk(https://open.weibo.com/wiki/index.php/Weibo-JS_V2)1. 调试方法:1.1 设置参数debu...原创 2019-06-03 16:56:42 · 1577 阅读 · 2 评论 -
echarts常用总结
无横纵坐标xAxis: { // show: false // 此方式,在区域小时,图就不显示了 axisTick:{show: false}, axisLine:{show: false}, axisLabel:{show: false}, splitLine:{show: false},},yAxis: { // show: false...原创 2019-09-23 18:49:04 · 220 阅读 · 0 评论 -
js控制 radio 选中状态
试了很多方法,如:$('input[name="tableChange"]').removeAttr('checked');$('input[name="tableChange"]').val('0');$('.changeCharts ').attr('checked','checked');都没有用,只有这个方法有用: 而且不用remove掉checked。$('input[name="c原创 2017-11-27 13:57:39 · 5456 阅读 · 5 评论 -
IE8 ajax 请求没反应
需求背景: 在做国际化语言时,需要不断切换语言发请求,修改session再刷新页面。 问题现象: 然而在IE8浏览器,却出现请求发送不过去的情况。后端断点并没有收到请求,而前端断点回调有结果,但却获取到值。 (由于是前后端分离的项目,前端发请求到本项目并未受影响,给后端项目也就是给另一个项目发请求有问题) 解决: 后来发现是IE8独特的缓存问题,IE8并没有真正发请求。。 然后加上这句原创 2017-10-24 14:33:32 · 8398 阅读 · 2 评论 -
new function() 使用
var zwk = function(){ var def = { name:'k', setName:function(name){ this.name = name; return this; }, getName:fun原创 2016-10-24 20:36:47 · 696 阅读 · 0 评论 -
使用bootstrap和jQuery制作下拉输入框
总体思路: 1. 使用html的datalist标签,实现模糊查询功能。 2. 但datalist的下拉列表没有找到滚动修改的方法,故自己制作一个下拉列表,使用bootstrap的下拉菜单组件 .dropdown,并将样式保持一致,且在聚焦时停用datalist的列表。关于浏览器兼容问题,测试与datalist所支持的一致,IE 10、Firefox、Opera 和 Chrome 支持。原创 2016-12-21 14:22:02 · 2214 阅读 · 0 评论 -
event.keyCode列表
Keycode对照表字母和数字键的键码值(keyCode)按键键码按键键码按键键码按键键码A65J74S83149B66K75T84250C转载 2017-01-19 10:46:24 · 344 阅读 · 0 评论 -
ajax回调时浏览器拦截window.open()
现象:如下代码在window.open() 时会被浏览器拦截。 经测试,在直接open时,chrome51、firefox51、IE11 均不会拦截; 在有ajax请求回调后,这三个浏览器均会拦截。 $.ajax({ type: "POST", url: REQUEST_BASE_PATH + "/**", data: {原创 2017-02-10 11:25:28 · 1620 阅读 · 0 评论 -
jsp中使用随机数解决js、css缓存问题
思路: 在tomcat启动的时候,给js、css文件名后面增加随机数,以保证在每次加载的时候文件名不同,在新版本发布后,不会被浏览器缓存所影响。实现: 若是前后端分开的项目,需在前端项目中创建类。 Random.java:package auth.comm;public class Random { static Integer currentRandom = null; publ原创 2017-03-02 15:38:10 · 3525 阅读 · 0 评论 -
解决IE8,IE9 在onmouseover下闪烁,无法正常滚动的问题
根据http://blog.sina.com.cn/s/blog_6261f86901011mub.html 学习找到方法。问题: 在IE11兼容模式下的ie8,不会出现图层闪烁,无法下拉到底的问题。 在自带IE8、IE9浏览器下,会出现问题。 在去掉onmouseover时,不会出现问题。 问题现象: 旧代码:function showOrHideTarget(targetId, i原创 2017-05-11 11:08:07 · 1567 阅读 · 0 评论 -
AJAX 基础理论学习笔记
AJAX :是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 AJAX = 异步 JavaScript 和 XML。 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。AJAX 工作原理 原生发ajax请求步骤: a.创建XMLHttpRequest对象; b.设置地址参数并发送请求; c.回调结果。响应数据格式: responseText 获得原创 2017-05-23 15:11:06 · 330 阅读 · 0 评论 -
网页调扫描仪扫描并显示
js调起扫描仪,如果厂商没有提供相应的组件,可以通过 http://n19937243.xicp.net(此按网站近期还无法使用) 注册来调扫描仪。原理:主要依托于ActiveXObject对象控制扫描仪。 ActiveXObject:通过它可以访问windows的本地文件系统和应用程序, 比如:有的时候我们需要得到用户的机器名,用户名,得到某个文件的信息,或者读写注册表,或者启动计算器、out原创 2017-05-08 17:15:51 · 12769 阅读 · 5 评论 -
闭包_学习笔记
闭包:就是能够读取其他函数内部变量的函数。 方法:定义在一个函数内部的函数,通过此内部函数作为入口获取内部变量。function eg3(){ var n = 9; var f2 = function(){ alert(n); }; return f2;};eg3()();//或function eg3(){ var n = 9;原创 2017-07-09 16:41:31 · 350 阅读 · 0 评论 -
jsonp跨域学习总结
一、背景: Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src”这个属性的标签都拥有跨域的能力,比如标签script、img、iframe)二、原理 JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。原创 2017-09-13 14:35:29 · 306 阅读 · 0 评论 -
pc端弹出层滚动外层也滚动问题
问题现象: 在网页上,写了一个弹出层,弹出层可以滚动,在弹出层滚动到最上方或最下方时,接着再往上(下)滚动,则底层的主体(body)页面跟着滚动。 解决: 本来是想通过滚动监听来控制,但后来发现各种阻止无效。 最后是用在弹出层出来时禁用掉body的滚动条[ $(‘body’).css(‘overflow-y’,’hidden’); ]的方式,但需要处理下body滚动条的样式。关于滚动scro原创 2017-09-07 18:53:54 · 1729 阅读 · 0 评论 -
解决报错 Page directive: illegal to have multiple occurrences of contentType with different values (old:
报错:严重: Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: /system/common/include/bootstrap_include.jsp (line: 3, column: 2) Page directive: illegal to have multiple o原创 2017-09-22 16:26:49 · 1705 阅读 · 0 评论 -
IE8 placeholder 无法显示问题
在 IE8 上 placeholder 无法显示: 左边是IE8的,右边是chrome的 开始用的 placeholder.js (http://download.csdn.net/download/dorothy1224/10015864)插件的方式,但我用的这个插件有小瑕疵,在IE8上,密码框会默认把placeholder提示语变成点点形式: 后自己写了一个插件,完美过渡: place原创 2017-10-11 14:26:59 · 1286 阅读 · 0 评论 -
解决input自动填充问题
网上很多是说用autocomplete=off,但我试后发现没有用。后来经过调试,想到一种解决方法,核心思想: 在页面渲染后,input字段会被填充,故只要监听onload,将input的值清除即可解决此问题。<input type="text">window.onload = function() { $('#os_username').val('');};封装后的clearAutoC原创 2017-10-11 17:49:12 · 2680 阅读 · 1 评论