Tag Archives: web前端

mac下拼接chrome浏览器的视频缓存文件

事情是这样的,原本我想在网上下载一个视频文件,但无奈很多视频网站现在都加了限制,很难获取到真正的视频url地址,即便是从有些站点获取了有些也不支持直接利用wget或者curl下载,于是我就想到了去chrome的缓存中去找(一般来说chrome的缓存路径是:/Users/XXXXX/Library/Caches/Google/Chrome/Default/Media Cache,其中XXXXX为你的电脑账户名称).播放完视频后,果然发现缓存中多了几个文件(视频被分段了,不是完整的),名字类似于下面这样子. 分段了就要给合并上呗,于是想到了cat命令,于是我根据时间将猜测为我想要的缓存媒体文件全部拷贝到了一个新建的空文件夹,之后执行如下命令: ok,我得到了一个名为a.mp4格式的文件,播放后发现果然是我想要的! 只是缓存路径与文件合并的方法不一致,合并命令貌似是copy/b,具体的自己查阅下吧! 至此,问题完事了,不过温馨提示,由于文件格式可能不一致,还有很多其他问题,以上方法你并不一定行得通,只能说可以一试.

input用keyup/keydown等监听汉字时的麻烦事

input用keyup/keydown等监听的时候,若是输入中文字符,汉字未输入完成还是拼音的时候,利用$(this).val()获取到的值全是拼音,这个做模糊查询没啥问题,但若是做正则匹配过滤字符,并且过滤字符后再用$(this).val()字符赋值,就将拼音直接写到input里面了!!! 为了解决这个问题,找到了compositionstart和compositionend这对属性,这两个分别在浏览器有非直接的文字输入时,以及当浏览器有非直接的文字输入结束时处罚,具体用法参考示例见源码: 参考文章:http://blog.sina.com.cn/s/blog_69ec42d50102wqok.html

js动态加载并在加载后执行一些代码

这个借助一些框架或工具应该有很多方式,比如利用seaJs,requireJs,还有jquery的getScript方法,这里只说一下用原生的方式怎么处理,最简单原始的解决方式,废话不多说了,直接上源码吧: 备注:亲测了PC端chrome,还有移动端的几个机型(包含IOS和安卓)没有啥问题

js预加载资源,并展示加载进度

之前经常看到有人做的页面加载前先有一个加载过程,并且动态展示加载的百分比,查了一下,发现利用了一个CreateJS,CreateJS中的PreloadJS可以实现效果。 先附上CreateJS的官网: 官网:https://createjs.com/ 中文官网:http://createjs.cc/ 下面附上一个简单源码,备注:由于引用的资源都是本地的,所以想要跑case,需要替换成自己的本地资源哦,比如creatsjs,还有那些预加载的图片。 最后再说一下,creatsjs功能挺强大的,有时间和兴趣的可以深入研究!!

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