Tag Archives: web前端

nodejs抓取网页邮箱

用到的正则匹配还是不太准确,也并未做到在全网去搜索邮箱地址,需要先限定位置,再去匹配,总之还有很多需要处理的问题,废话不多说了,直接上代码吧,以贴吧为例(其中用到的有些工具包需要自行安装):

利用window.onerror捕获并上报Js错误,具体到某一行

之前都是用try{}catch(){}来捕获监听js报错信息,具体文章可以看js报错信息,以及文件加载失败问题的log日志统计方式,但这个监听的报错信息只能到具体的文件,并不能定位到具体哪一行报错了,于是根据业务需求找了一下,发现还真有其他方式可以实现,那就是window.error函数,具体看示例代码。 运行之后报错信息全出来了,由于故意写错的代码直接放到了html里面,所以报错的文件就是当前的html文件,若是引入的js文件,那报错文件就会是引入的js文件了。不错不错,这个真的很好用啊。

Chrome浏览器所有页面全部崩溃!

简单但不是长远之际的解决方法:–no-sandbox,在软件属性的目标后面添加这个可以以沙箱形式运行。具体来讲就是找到应用图标,右键选择属性,打开的属性中有一个目标,在目标的最后加上–no-sandbox。 长远考虑要找到具体原因,我是用这个解决的:原因是百度的C:\Windows\System32\drivers\bd0001.sys这个文件冲突,直接删掉就可以,删掉的时候可能删不掉,那就进入到安全模式来删除,或者用第三方软件。 相关文章连接:https://www.zhihu.com/question/29305453

iscroll在安卓高版本(6.0以上)某些机型上滑动卡顿处理

具体现象:在某些安卓机上利用iscroll滑动的列表卡的要死,这些手机的特性一般都是安卓版本比较高!除了在安卓高版本上,chrome模拟器上也没有办法滚动! 这个问题产生的原因,不太确定啊,估摸着简单说一下,是由于chrome的55版本新增了一些属性,具体新增属性可见连接https://developers.google.com/web/updates/2016/11/nic55 就是由于这个新增的pointermove属性导致了采用chrome做webview默认内核的机子出问题了,用了iscorll就卡顿的要死了,解决方法: 简单来说直接用fixed版本的iscroll就可以了,连接见,还标注了修改点:https://github.com/claydotio/iscroll/commit/be4973786cc0ae4402d1b4b74507528d474da681 若是打不开上面连接,或者不想了解改了什么地方,可以试下这个连接,这个是纯js文件:https://raw.githubusercontent.com/claydotio/iscroll/be4973786cc0ae4402d1b4b74507528d474da681/build/iscroll.js 问题解决来源:https://github.com/cubiq/iscroll/issues/1109

javascript发现获取url后面参数用unescape处理后产生了乱码

javascript发现获取url后面参数用unescape处理后产生了乱码,原因很明显是遇到了中文,若是直接处理的话其实很简单,直接采用如下代码便可以了 可若是我拿到的已经是乱码了,无法从原始数据中来获取了,那也不着急,先转回去再来,多套一层而已

iOS Safari 中点击事件失效的解决办法

问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效。 可以使用下面的代码在 iOS 中进行测试。 解决办法 解决办法有 4 种可供选择: ​1、将 click 事件直接绑定到目标​元素(​​即 .target)上 2、将目标​元素换成a或者 button 等可点击的​元素 ​3、将 click 事件委托到​​​​​非 document 或 body 的​​父级元素上 ​4、给​目标元素加一条样式规则 cursor: pointer; ​推荐后两种。从解决办法来看,​推测在 safari 中,不可点击的元素的点击事件不会冒泡到父级元素。通过添加 cursor: pointer 使得元素变成了可点击的了。 原文地址:https://happycoder.net/solve-ios-safari-click-event-bug/

javascript文件加载问题

1、javascript文件加载分为同步和异步,同步的话,现在高级浏览器支持了并行下载,但执行上依旧是按照文件的先后顺序来执行!很能理解,同步的好处是为了防止js执行顺序错乱,由于其中极有可能会有依赖关系,不好的地方容易造成阻塞。异步正好和同步相反,避免了阻塞,但执行顺序极有可能混乱了! 2、这里还有一个问题,若是有test1.js、test2.js、test3.js,但在加载test2.js的过程中出现了问题,然后重新拉取新的js文件test4.js,是先执行test4.js还是test3.js呢,本人在chrome最新版本(50.0.2661.94)上,显示是test4.js先执行,看来js的加载执行真的是完全深度化啊! 3、最后分享一篇文章,有关js文件在什么情况下是同步,什么时间是异步的问题:http://www.cnblogs.com/ecalf/archive/2012/12/12/2813962.html

移动端开发之小米1s崩溃的问题

一个内嵌在app内的页面,有一个按钮,一旦点击小米1s就崩溃了,经过调试发现问题出现在触发事件报错后,需要在body内append(插入)一个元素,就是这么简单的一个操作,直接导致小米1s崩溃了? 唉,毕竟是老机子了,很明显像是渲染那不给力,随后在不触发按钮的情况下等尝试了append(插入)元素,会不定期的出现页面崩溃! 虽不敢百分百肯定,但基本可以断定了是页面渲染性能的问题,于是将需要插入的元素事先埋在了html里面,触发的时候显示出来,结果崩溃的概率大大降低了,在click后又加了一个延迟,崩溃的概率又降低了些! 忘记说了一点,我们插入的东西很简单,就是一个p元素! 若是有人知道具体原因,欢迎告知!

requireJs如何清除强制缓存

urlArgs: RequireJS获取资源时附加在URL后面的额外的query参数。作为浏览器或服务器未正确配置时的“cache bust”手段很有用。使用cache bust配置的一个示例: urlArgs: “bust=” + (new Date()).getTime() 在开发中这很有用,但请记得在部署到生成环境之前移除它。 具体使用方法: 参考文章:http://www.requirejs.cn/

py2exe生成exe可执行文件

官方文档: 安装py2exe,安装了pip的前提下,pip install py2exe,没有的话需要首先安装pip或者是easy_install; 安装完成后,比如想要将test.py生成exe 代码如下: 然后就可以生成exe了,执行python3 creat_exe.py py2exe 然后就在对应的目录生成了dist

iphone第三方输入法(搜狗)监听keyup、keydown失效

iphone第三方输入法监听keyup、keydown失效,也就是说第三方输入法监听不到keyup、keydown事件; 查了网上的资料,发现了如下代码: 用了以上方法之后,又出现了另外一个问题,三星的一款手机出现无法删除字符了(需要手动点击下输入框才行),查了之后果然是上面的原因引起的,为了解决这个问题,我采用了keyup监听和上面监听同时使用,然后利用setTimeout对触发的函数进行防频繁执行处理,代码原理如下: 参考文章:http://blog.csdn.net/hanjunspirit/article/details/9346667

window下的调试

先介绍几个windows下的调试器:ollydbg、PyDbg、Immunity debugger 寄存器可以被认为是位于CPU上的小型存储器,CPU获取数据最快的方式就是直接访问寄存器。在x86指令集中,一个CP具有8个通用寄存器:EAX、EDX、ECX、ESI、EDI、EBP、ESP、EBX。 EAX寄存器也被称为累加器,用于协助执行一些常见的运算操作以外用于传递函数调用的返回值。在X86指令集中很多经过优化的指令会优先将数据写入或者独处EAX寄存器,在对数据进行进一步的计算。大多数基本的运算操作如:假发、减法和比较运算都会借助使用EAX寄存器来达到指令优化的效果。还有一些特殊指令如:乘法和除法则必须在EAX寄存器中进行。 若之前所属,函数调用的返回值被储存在EAX寄存器中。牢记这一点很重要,你可以基于存储在EAX中的值来判断一个函数调用所执行的操作是成功还是失败了。除了布尔类型的返回之外,EAX中存数的也可能是一个确切的函数返回值。 EDA是一个数据寄存器,这个寄存器可以被认为是EAX寄存器的延伸部分,用于协助一些更为复杂的运算指令,如:乘法和除法,EDA被用于存储这些指令操作的额外数据结果。EDA也可以用于通用目的的数据存储,但是其最常见的用法是和EAX寄存器联合使用,以协助执行这类更复杂的元算。 ECX寄存器也被称为计数器,用于支持循环操作,存储一个字符串或者进行计算就是典型的循环操作。需要特别注意的是ECX寄存器通常是反向计数的,而非正向计数。我们用以下的Python代码片段来向你说明这个问题。 在x86汇编语言中,那些涉及数据处理的循环操作依赖于ESI和EDI这两个寄存器,以实现高效的数据操作,ESI寄存器也被称为源地址寄存器,这个寄存器存储着输入的数据流的位置信息。EDI寄存器则指向相关数据操作结果的存放位置,我们称之为目的变址寄存器,可以简记为ESI用于“读”,而EDI用于“写”。在数据操作过程中使用源变址索引和目的变址寄存器可以极大提高程序运行的效率。 ESP和EBP寄存器分别被称为栈指针和基址指针,这些寄存器用于控制函数调用和相关的栈操作。当一个函数被调用时,调用参数连同函数的返回的地址将先后被压入函数栈中,ESP寄存器始终指向函数栈的最顶端,有此不难推断出在函数调用过程中的某一时刻,ESP指向了函数的返回地址。EBP寄存器被用于指向函数栈的低端。在某些情况下,编译器为了指令优化的目的可能会避免将EBP寄存器用作栈指针。在这种情况下,被释放出来的EBP寄存器可以向其他任何一个通用的寄存器一样另左它用。 EBX寄存器是惟一一个没有被指定特殊用途的寄存器,它可以被作为额外的存储单元来使用。 另外一个应当被提及的寄存器是EIP寄存器。这个寄存器始终指向当前正在执行的指令,当CPU穿行于二进制代码中时,EIP寄存器中的值随之更新以实时的反映当前代码所执行到的位置。 一个调试器应当能够轻易的读取和修改这些寄存器的内容,每一个操作系统都会提供一个接口做组来使得调试器能够与CPU进行交互,以获取或修改这些寄存器中的值。

各大巨头电商提供的IP库API接口-新浪、搜狐、阿里…

关键字:各大巨头电商提供的IP库API接口-新浪、搜狐、阿里… 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42 搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson 搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8 搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip 太平洋电脑 IP库接口:(默认callback=IPCallBack) http://whois.pconline.com.cn/ipJson.jsp http://whois.pconline.com.cn/?ip=[ip地址字符串] 直接访问:http://whois.pconline.com.cn/?ip= 调用方法非常丰富,提供多种JS嵌入调用。 网易有道IP地址API接口 查询IP地址: http://www.youdao.com/smartresult-xml/search.s?type=ip&q=115.156.238.114 淘宝IP地址库API接口 1. 请求接口(GET): http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 另外,还有Google,搜狐,腾讯等均提供相应接口,请参看相关资料,这里不再赘述。 原文地址:http://zhaoshijie.iteye.com/blog/2205033