本次练习错误总结: 1. div跟着用户操作而移动,首先必须要绝对定位,否则无法移动. 2. if条件语句里面是双等号,不是单等号(赋值). 3. 坐标值没有Right,只能offsetLeft 加减. //oDiv.style.right = oDiv.offsetRight + 10 + 'px'; <style> div{ width: 100px; height: 100px; background-color: #ccc; /* border: 1px solid #000; */…
本次练习错误总结: 1.  正确: startMove( document.documentElement.clientHeight - oDiv.offsetHeight + scrollTop); 错误: startMove(document.documentElement.clientHeight - oDiv.offsetTop + scrollTop); startMove(iTarget); 这个函数的目标点 iTarget 应该是 可视窗高度 – div的高度 + 滚动条上方的滚动…
<style> *{ margin: 0; padding: 0;} #ul1{ width: 400px; height: 400px; border: 1px solid #000; margin: 10px auto; padding: 4px; overflow: hidden; } /* #ul li 选择器写错了!!! */ #ul1 li{ border-bottom: 1px #999 dashed; padding: 4px; list-style: none; overfl…
错误总结: 1. var disX = 0;   现在window.onload里声明变量,而不是在事件oDiv.onmousedown里面声明并赋值. 对于这个还不是很明白. 2. onmousedown事件的主体是oDiv,不是整个窗口. 3. if ... else if ...   两个花括号的中间不可以写分号 ; . 4. oDiv.style.left = l + 'px';    left 值有px. 5. 写法错误.  可视窗的宽度:  document.documentElem…
本次练习错误总结: 1. 改变border的宽度,属性名称不是直接写border,而是borderWidth. 2. 运动函数 -- 清除定时器 -- 开启新的定时器.  不是在新定时器开启之后再清除,而是开启之前就要在运动函数里清空一次! 3. 这个获取的值需要先parseInt变成数字.  且变量要放在定时器函数里面.(哪个函数使用的变量,就放在哪个函数里.) var cur = parseInt(getStyle(obj, attr)); <!DOCTYPE html> <html…
本次练习错误总结: 1. for循环要套到按钮的onclick里面,否则onclick点击事件无法依次执行. 2. var n1, var n2 这两个变量是arr.sort排序使用的,所以应该放在sort() 函数里面. 3.arr.sort(function (li1,li2) 这个排序函数的li1, li2表示的是arr[ ] 这个数组里随机的两个数,这个命名和之前的aLi无关.不需要调用aLi为变量. 4. for循环    for ( ) 条件语句末尾一定不能写分号.   分号表示该段…
var data = (localStorage.getItem('todolist'))? JSON.parse(localStorage.getItem('todolist')) : { todo: [], done : [] // 键值对 用冒号 }; renderTodoList(); var oBtnAdd = document.getElementById('add'); var oInput = document.getElementById('input'); // var oL…
<script> window.onload = function() { var oBtn = document.getElementsByTagName('button')[0]; var aTxt = document.getElementsByTagName('input'); // oBtn.onclick = getValue(aTxt[0].value, aTxt[1].value); // 点击事件后面要跟function 再调用别的函数!! oBtn.onclick = fu…
<script> //步骤 1.submit => 用户名存进cookie 2. onload => 从cookie读取用户名 window.onload = function() { var oForm = document.getElementById('form1'); var oUser = document.getElementsByName('user')[0]; // 要指定是第几个 [0] var oPass = document.getElementsByName…
window.onload = function () { var oDiv = document.getElementById('div1'); var oBtn = document.getElementById('btn1'); //oBtn.onclick = function () { oBtn.onclick = function (ev) { // (ev)是事件的参数.函数里有 oEvent这个变量,所以function () 括号内要写参数. var oEvent = ev |…
现在的网站对于前端的排版已经逐渐不使用<table>,而是使用div+css. 使用这种方法的最大好处就在于在维护页面时,可以只维护css而不去改动html. 可是这种方式对于初学者来说可能不好理解,所以简单描述一下使用div+css排版基础.   下图是一个使用div+css排版的示例:   html和css: <html> <head> <style> body{font-size:20px;font-weight:bold;color:white;}…
methods:{ add(){ var car = { id: this.id, name: this.name, ctime: new Date()}; this.list.push(car); }, del(id){ this.list.splice(id,1); // 数组里删除, 用splice remove是操作dom的 }, search(keywords){ // 做搜索要明确是从哪个里面去搜. var newList = []; // if(this.list.name.ind…
通过上一篇文章我的three.js学习记录(一)基本上是入门了three.js,但是这不够3D,这次我希望能把之前做的demo弄出来,然后通过例子来分析操作步骤. 1. 示例 上图是之前做的一个demo,有点丑,希望不要介意. 这个主要是外面一层包裹着天空盒, 然后里面是一个由开顶的立方体做成的房子(暂且理解为房子)以及里面的家具构成,其中包括可以播放视频的电视,一个可以照的镜子,导入的沙发模型等 2. 操作步骤 2.1 准备工作 首先,我们需要上一篇文章的基础,这里不再赘述,我们直接进入主题,…
此次的亮点不是three.js的3d部分,而是通过调用摄像头然后通过摄像头的图像变化进行简单的判断后进行一些操作.上篇中我通过简单的示例分析来学习three.js,这次是通过上一篇的一些代码来与摄像头判断部分的代码相互结合,弄一个新的东西,可以看下图 说明 这次的示例是我们可以通过一个摄像头隔空控制我们屏幕中的视频的播放. 原理其实也是很简单,我们看到的摄像头图像其实是通过获取到的图像数据然后再通过canvas 画上去的,这里有两层canvas 一层是我们的正常的摄像头输出,一层是我们的播放按钮…
Ant Design 错误记录 一: 标签页Tabs 1:设置activeKey或defaultActiveKey,绑定默认值不起作用: =>    需要同时设置activeKey和defaultActiveKey. 二: 表格Table 1:当改变表格绑定的值,表单部分组件未刷新:  =>    可以在刷新列表前将绑定的值重置为空. 还不行的话可以给table加上rowKey属性(值为 string|Function(record):string) rowKey={(record) =>…
使用AngularJS的时候,对JS错误如何自定义处理?(比如用Google Analytics记录angularjs使用中出现的js错误) AngularJS自带一个错误处理service:$exceptionHandler 具体代码该API里有示例: angular. module('exceptionOverwrite', []). factory('$exceptionHandler', ['$log', 'logErrorsToBackend', function($log, logE…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta h…
前端监控系统 目前已经上线,欢迎使用! 服务器搭建好了,可以着手开发了. 其实前端需要分析的数据有很多,包括,PVUV, 接口请求统计,耗时统计,JS错误统计,用户使用设备统计,用户地域分布,页面用户行为分析等等.这个系统是由JS错误搜集起源,所以先讲讲JS错误日志搜集篇. 一.创建一个js文件,命名为monitor.js 如果要监控前端项目的数据,就需要在页面的最顶部嵌入一段我们的监控代码,这也是最核心的部分,所以我把它单独拎出来立项. 二.开始监控JS的报错日志 window.onerror…
===================================================================== 前端性能监控系统: DEMO地址    GIT代码仓库地址 ===================================================================== 对于前端应用来说,Js错误的发生直接影响前端应用的质量.对前端异常的监控是整个前端监控系统中的一个重要环节. 那么如何做到对Js错误的监控呢?对搜集到的js错误…
总结: 1. 注意body里的结构安排,全部装在大div,避免多次设置不同部分居中. 2. 一排按钮居中:装在大div里,text-align: center; 3. 把相同的部分封装成函数,即 同个 oDiv,都是attr 属性 设置 value. var changeStyle = function (elem, attr, value) { elem.style[attr] = value }; 4. 用数组的方式,把每个要设置的attr 和 对应的 value 装起来,直接到数组里用th…
vue.js学习记录 文章已同步我的github笔记https://github.com/ymblog/blog,欢迎大家加star~~ vue实例 生命周期 beforeCreate:不能访问this.$el和this.$data用于初始化非响应式变量created:可以访问this.$data,不能访问到this.$el属性,this.$refs内容,用于ajax请求,created里赋值,data不用定义beforeMount:this.$el和this.$data都初始化了,挂载前thi…
1.try-catch语句   Try{ //可能会导致错误的代码 }catch(error){ //在错误发生时怎么处理 } 例如: try{ window.someNonexistentFunction(); }catch(error){ alert('an error happened'); //alert(error.message); } 如果try块中的任何代码发横了错误,就会立即退出代码执行过程,然后接着执行catch块.此时,catch块会接收到一个包含错误信息的对象.与在其他语…
现在的前端开发已不再是刀耕火种的年代了,各种框架.编译工具层出不穷,前端监控系统也不甘其后,遍地开花. 前端正承受着越来越重的职责,前端的业务也变得越来越复杂,此时此刻我们就更需要一套完善的监控系统来为我们的线上应用保驾护航. 但是,想在众多的监控系统挑出一个趁手的,还真不是一件容易的事.不过徒手撕一个前端监控系统,好像也绝非那么容易.今天我们就以Webfunny前端监控为基础,来说一下前端监控最核心的部分,Js错误监控. 推广:(官网:www.webfunny.cn .Git:webfunny…
作者:彭莉,火山引擎 APM 研发工程师.2020年加入字节,负责前端监控 SDK 的开发维护.平台数据消费的探索和落地. 有必要针对 JS 错误做监控吗? 我们可以先假设不对 JS 错误做监控,试想会出现什么问题? JS 错误可能会导致渲染出错.用户操作意外终止,如果没有 JS 错误监控,开发者完全感知不到线上这些异常情况.特别是像电商.支付这类业务,用户无法下单和付款.即便站点有反馈渠道,但是等到有用户反馈的时候,说明影响面已经不小了. 因此像 JS 错误监控这类异常监控的存在,就是为了能及…
由于项目(asp.net MVC)需要做一个附件上传的功能,使用的是jQuery的Uploadify插件的2.1.0版本,上传文件到自己项目指定的文件夹下面.做完之后,在谷歌上测试是正确的,在火狐上报Http 302的错误,自己也找了很多资料去看,也试了试,都不行,最后回本溯源,看302的错误解释.官方给的解释是:302重定向,暂时性转移. 自己就尝试着把处理文件上传的方法放到了另外一个Controller下面,结果在火狐上就不会报错了,好变态啊,自己花费好久都没解决的问题,在一瞬间竟然搞定了,…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta h…
主要分四个部分 第一部分:浏览器的按键事件 第二部分:兼容浏览器 第三部分:代码实现和优化 第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown.onkeypress和onkeyup这三个事件句柄.一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup. 在这3种事件类型中,keydown和keyup比较底层,而keypre…
开发错误记录8:Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication 这是因为在Android Studio2 新的即时运行功能 导致的,因为,这个功能只在更改布局文件时不用重新编译! 把这个功能关闭即可! 在Android 6.0的新增了权限管理机制,所以在调用相应的权限,要重新申请,在6.0以下的版本,不存在,否则在操作相机,联系人,打电话等,会报如下的错误 :(网上有很多封装好…
[记录错误(生产环境)] php.ini: ① 开启 / 关闭 错误日志功能 log_errors = On ② 设置 log_errors 的最大字节数 log_errors_max_len = 其他: 选项 描述 log_errors 设置是否将错误信息记录到日志或者 error_log 中 error_log 设置脚本错误将记录到的文件 log_errors_max_len 设置 log_errors 的最大字节数 ignore_repeated_errors 是否忽略重复的错误信息 ig…
最近在做项目的过程中,发现很多JS报错没有引起重视,我就想想把JS错误捕获了,然后展示在我们一个平台上 具体实现代码: window.onerror = function(message, url, lineNumber,columnNo,error) {     var data = {         'message':message,         'url':url,         'error':error.stack     };     $.ajax({         ur…