一、浏览器地址栏运行JavaScript代码
这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开头后跟要执行的语句。比如:
javascript:alert('hello from address bar :)');
将以上代码贴到浏览器地址栏回车后alert正常执行,一个弹窗神现。
你去试一试,是不是没有出现弹窗???
![d3dac20f23f5be7380c600ecaebfe7ad.png](https://img-blog.csdnimg.cn/img_convert/d3dac20f23f5be7380c600ecaebfe7ad.png)
那是因为:
如果是通过copy paste代码到浏览器地址栏的话,
IE及Chrome会自动去掉代码开头的javascript:,所以需要手动添加起来才能正确执行,
而Firefox中虽然不会自动去掉,但它根本就不支持在地址栏运行JS代码,
sigh~
二、浏览器地址栏运行HTML代码
如果说上面那条小秘密知道的人还算多的话,这条秘笈知道的人就要少一些了,在非IE内核的浏览器地址栏可以直接运行HTML代码!
比如在地址栏输入以下代码然后回车运行,会出现指定的页面内容。
data:text/html,<h1>Hello, world!</h1>
![0d991e64511056527d40195a5b2c8c0a.png](https://img-blog.csdnimg.cn/img_convert/0d991e64511056527d40195a5b2c8c0a.png)
三、把浏览器当编辑器
还是浏览器地址栏上做文章,将以下代码贴到地址栏运行后浏览器变成了一个原始而简单的编辑器,与Windows自带的notepad一样,吼吼。
data:text/html, <html contenteditable>
![dd023f297b3cb7052b018388f689513e.png](https://img-blog.csdnimg.cn/img_convert/dd023f297b3cb7052b018388f689513e.png)
归根结底多亏了HTML5中新加的contenteditable
属性,当元素指定了该属性后,元素的内容成为可编辑状态。
推而广之,将以下代码放到console
执行后,整个页面将变得可编辑,随意践踏吧~
document.body.contentEditable='true';
四、利用a标签自动解析URL
很多时候我们有从一个URL中提取域名,查询关键字,变量参数值等的需要,而万万没想到可以让浏览器方便地帮我们完成这一任务而不用我们写正则去抓取。方法就在JS代码里先创建一个a标签然后将需要解析的URL赋值给a的href属性,然后就得到了一切我们想要的了。
var a = document.createElement('a');
a.href = 'http://github.com/fly-sy/code';
console.log(a.host);
五、页面拥有ID的元素会创建全局变量
在一张HTML页面中,所有设置了ID属性的元素会在JavaScript的执行环境中创建对应的全局变量,这意味着document.getElementById像人的阑尾一样显得多余了。但实际项目中最好老老实实该怎么写就怎么写,毕竟常规代码出乱子的机会要小得多。
<div id="sample"></div>
<script type="text/javascript">
console.log(sample);//直接写id名即可获取到元素
</script>
六、加载CDN文件时,可以省掉HTTP标识
现在很流行的CDN即从专门的服务器加载一些通用的JS和CSS文件,出于安全考虑有的CDN服务器使用HTTPS方式连接,而有的是传统的HTTP,其实我们在使用时可以忽略掉这个,将它从URL中省去。
<script src="//cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
七、不声明第三个变量的值交换
我们都知道交换两个变量值的常规做法,那就是声明一个中间变量来暂存。但鲜有人去挑战不声明中间变量的情况,下面的代码给出了这种实现。蛮有创意 的。
var a=1,b=2;a=[b,b=a][0];
![0931a6aff9ca93a930d40c315a164667.png](https://img-blog.csdnimg.cn/img_convert/0931a6aff9ca93a930d40c315a164667.png)
八、禁止别人以iframe加载你的页面
下面的代码已经不言自明了,没什么好多说的。
if (window.location != window.parent.location) window.parent.location = window.location;
九、console.table
Chrome专属,IE绕道的console方法。可以将JavaScript关联数组以表格形式输出到浏览器console,效果很惊赞,界面很美观。赞~赞~赞~
var data = [{'品名': ' ', '数量': 4}, {'品名': ' ', '数量': 3}];
console.table(data);
![db8c6a18c588c9c051fb87bcf3ff6d44.png](https://img-blog.csdnimg.cn/img_convert/db8c6a18c588c9c051fb87bcf3ff6d44.png)
![365e738d05916bc5db582161f0692301.png](https://img-blog.csdnimg.cn/img_convert/365e738d05916bc5db582161f0692301.png)
此文转载自:千锋HTML5学院
原文链接:web前端9个开发常见小技巧
Eric:redux+react-redux实现购物流程zhuanlan.zhihu.com![cfe3c2286726e27aab06f50ba736e7eb.png](https://img-blog.csdnimg.cn/img_convert/cfe3c2286726e27aab06f50ba736e7eb.png)