动态加载 CSS 和 JS 的另外一种方法
除了动态创建 script dom 后 append 到 document,还可以直接这样:
/**
* 加载JS
* @param path
*/
function loadJS(path) {
document.write(`<script type="text/java……继续阅读 »
tianlan
9个月前 (06-06) 509浏览 0评论
1个赞
jsonp 原理
动态创建script标签,然后通过src属性发送跨域请求
结果
这样的话自然不支持 post 请求啦,因为 script 标签都是用 get 请求的
……继续阅读 »
tianlan
9个月前 (05-26) 339浏览 0评论
0个赞
JS 代码实现
/**
* 检测到调试时进行的操作
*/
let onDebug = function () {
//提示
document.write('检测到非法调试!请停止调试后刷新本页面!');
/*卡死*/
// while (true) {
// consol……继续阅读 »
tianlan
9个月前 (05-18) 508浏览 0评论
0个赞
简介
这个拓展是一个 反反反调试框架
当看到一段漂亮代码的时候 发现有反调试 卡浏览器 死机 这个时候就很不爽了。
拥有这个插件 就可以解决问题于无形之中。
主要解决问题
基于console的devtool检测
基于pushState的卡浏览器
基于debugger的卡浏览器 检测devtool
基于regexp的代码风格检测
安装和使用
下载
cd ~……继续阅读 »
tianlan
9个月前 (05-18) 506浏览 0评论
0个赞
在前端开发中,尽量少用cookie存储数据
1.cookie限制大小,约4k左右,不适合存储业务数据,尤其是数据量较大的值
2.cookie会每次随http请求一起发送,浪费宽带
尽量用 localStorage
优点
1.存储数据量大,localStorage拓展了cookie的4K限制
2.不会随http请求一起发送,localStorage会可以将第一……继续阅读 »
tianlan
10个月前 (05-15) 377浏览 0评论
0个赞
箭头函数
箭头函数没有 this,若在里面使用 this,则指向上下文对象。
普通函数
非严格模式
this === window
严格模式
this === undefined
对象中的方法
自然是指向对象
apply/call/bind
改变this指针,也可以理解为对象借用方法,就现像生活中向邻居借东西一样的事情。
bind
bind()是将函数绑定到……继续阅读 »
tianlan
10个月前 (04-26) 130浏览 0评论
1个赞
作用域
基础
全局作用域只有一个,每个函数又都有作用域(环境)。
编译器运行时会将变量定义在所在作用域
这意味着:作用域链取决于【上下文环境(函数是怎么被定义的)】,而不是【函数是怎么被调用的】。其作用域链在编译时就已经确定了,而不是运行时。
使用变量时会从当前作用域开始向上查找变量
let/const
使用 let/const 可以将变量声明在块……继续阅读 »
tianlan
10个月前 (04-26) 396浏览 0评论
0个赞
已定义但未初始化的变量为 undefined
使用未定义的变量会发生异常
typeof()检测已定义但未初始化、未定义的变量时,结果都为 “undefined”。注意:typeof()的返回结果是 String 类型
调用对象不存在的属性 比如 obj.fakepro (obj对象没有fakepro 属性)
……继续阅读 »
tianlan
10个月前 (04-25) 390浏览 0评论
0个赞
引言
我们通过 jq 选择器,可以轻松地根据 id、class、属性等查找内容,那么怎样通过html内容来查找dom呢?
实现代码
$(“标签名:contains(html内容)”)
……继续阅读 »
tianlan
11个月前 (04-15) 292浏览 0评论
0个赞
引言
今天用js操作dom,模拟点击一个按钮,发现无效!但是手动点击又有效!
错误的分析
目标 dom 一共绑定了两个监听器,第一个是实际业务代码,第二个是空函数。
那么模拟点击的时候,只有第二个监听器起作用,第一个监听器被第二个覆盖掉了,不起作用了。
正确的分析
实际情况是:两个监听器的代码确实都执行了,不存在谁覆盖谁一说,但是由于没有输入付款金额,……继续阅读 »
tianlan
11个月前 (04-15) 338浏览 0评论
0个赞