js杂项积累
主要内容:
一 浏览器重定向Http请求跨域
重定向第一次请求跨域,仍可以发送第二次请求
第二次请求服务器端可正常运行,客户端将无法接受到数据。
如下是遇到此问题时的一些可以观察到的表现:
- 浏览器的开发页的network标签页中,http请求无异常,能在preview中看到结果。
- 浏览器会在console里报出跨域错误。
- 处理跨域请求结果的js因报错而终止执行。
二 html select标签 可以设置属性multipe,变为多选
<select multipe id="s" name="s">
<option value="1">1</option>
<option value="2">2</option>
</select>
s.onchange = function () {
console.log(Array.prototype.map.call(this.options, (item) => {
return return item.value + 'is selected: ' + item.selected
}).join('\n'))
}
三 document.wirte只应在script标签的顶层代码中使用。不能放在函数的定义中,否则原有文档将被清空。
<script>
document.write("写在顶层,这样脚本在解析阶段就会执行!") // ok
document.documentElement.onclick = () => {
document.write('点击了页面,调用write写入新内容,原有内容将被清空')
}
</script>
四 js可以打开一个新窗口,如果符合同源策略要求,可以访问新窗口的window对象。js如果要关闭一个不是通过js打开的窗口,则需要一些特殊的技巧
以下代码展示了如何关闭当前浏览页面:
const closeWebPage = () => {
if (navigator.userAgent.indexOf('MSIE') > 0) {
if (navigator.userAgent.indexOf('MSIE 6.0') > 0) {
window.opener = null
window.close()
} else {
window.open('', '_top')
window.top.close()
}
} else if (navigator.userAgent.indexOf('Firefox') > 0 || navigator.userAgent.indexOf('Chrome') > 0) {
window.location.href = 'about:blank'
window.close()
} else {
window.opener = null
window.open('', '_self')
window.close()
}
}
五 多个窗口(浏览器窗口)和多个iframe窗体之间的原型对象、类都互相独立
父页面:
<body>
<iframe src="./frame.html" frameborder="0" id="frame"></iframe>
</body>
<script>
var p = Object.prototype
var o = Object
</script>
内嵌页面frame:
<body>
frame content
</body>
<script>
var frameP = Object.prototype
console.log(frameP) // {constructor: ƒ, __defineGetter__: ƒ, …}
var parentP = window.parent.p
console.log(parentP) // {constructor: ƒ, __defineGetter__: ƒ, …}
console.log(frameP === parentP) // false
var frameO = Object
console.log(frameO) // ƒ Object() { [native code] }
var parentO = window.parent.o
console.log(parentO) // ƒ Object() { [native code] }
console.log(frameO === parentO) // false
</script>
js杂项积累的更多相关文章
- JS小积累(二)— 自动获取浏览器尺寸
JS小积累-获取浏览器窗口尺寸 作者: 狐狸家的鱼 GitHub:八至 autodivheight(); function autodivheight() { //函数:获取尺寸 //获取浏览器窗口高 ...
- JS小积累(一)— 判断在线离线
JS小积累-判断在线离线 作者: 狐狸家的鱼 Github: 八至 if(window.navigator.onLine==true){ console.log('online'); ... } el ...
- AngularJS.js: 杂项
ylbtech-AngularJS.js: 杂项 AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多 ...
- js杂项
css是 下划线命名法:table_sub ;javascript ,net ,sql 全部是camel命名法 找临界点 1.elem.checked 有两个值,true,false . 页面中< ...
- 微信中一些常用的js事件积累
1.网页图片集左右滑动查看图片,如下样例: jjs效果 var pictures = []; angular.forEach(pitctures,function(k,i){ pict ...
- js日常积累
1.数组转字符串 str.join(',') 2.字符串转数组 arr.split(',') 3.数组排序 function sorb(a,b){return a-b;}; arr.sort(sorb ...
- 在线引用js资源积累
[jQuery]https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js[Vue]https://cdnjs.cloudfla ...
- 常用js代码积累
1,js判断进入可视区,参考(亲测不行):https://www.cnblogs.com/Marydon20170307/p/8830069.html 重点学习的话,可参考: js计算元素距离顶部的高 ...
- 转载:使用jquery刷新当前页面以及其他js知识积累
转载:https://www.cnblogs.com/heguihui/p/10505949.html 如何使用jquery刷新当前页面 下面介绍全页面刷新方法:有时候可能会用到 window.loc ...
随机推荐
- 浅谈Spring AOP 面向切面编程 最通俗易懂的画图理解AOP、AOP通知执行顺序~
简介 我们都知道,Spring 框架作为后端主流框架之一,最有特点的三部分就是IOC控制反转.依赖注入.以及AOP切面.当然AOP作为一个Spring 的重要组成模块,当然IOC是不依赖于Spring ...
- Java IO编程——文件拷贝
在操作系统里面有一个copy命令,这个命令的主要功能是可以实现文件的拷贝处理,现在要求模拟这个命令,通过初始化参数输入拷贝的源文件路径与拷贝的目标路径实现文件的拷贝处理. 需求分析: ·需要实现文件的 ...
- vps配置脚本备个份
#!/bin/bash apt-get update -y apt-get dist-upgrade -y apt-get install -y nmap vim build-essential gc ...
- [考试反思]0821NOIP模拟测试28:沉默
这次不能把我前面的分数段都列出来了,因为实在太多了. 这次也不能把我后面的分数段列出来了,因为我后面没有了. yxm,mikufun,Pairs170100分第10.50分第29. 我:爆零,倒数第一 ...
- JavaScript 域名学习及对象的继承实现
1.定义命名空间 var Namespace = new Object(); Namespace.register = function(path){ var arr = path.spl ...
- Java中打印日志,这4点很重要!
目录 一.预先判断日志级别 二.避免无效日志打印 三.区别对待错误日志 四.保证记录完整内容 打印日志,要注意下面4点. 一.预先判断日志级别 对DEBUG.INFO级别的日志,必须使用条件输出或者使 ...
- 【集合系列】- 初探java集合框架图
一.集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中.从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数 ...
- 每天3分钟操作系统修炼秘籍(14):IO操作和DMA、RDMA
点我查看秘籍连载 I/O操作和DMA.RDMA 用户进程想要执行IO操作时(例如想要读磁盘数据.向磁盘写数据.读键盘的输入等等),由于用户进程工作在用户模式下,它没有执行这些操作的权限,只能通过发起对 ...
- js在字符串中加入一段字符串
在这个功能的实现主要是slice()方法的掌握 arrayObject.slice(start,end) start 必需.规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位置.也就是说 ...
- nyoj 1364-治安管理 (INT_MAX)
1364-治安管理 内存限制:128MB 时间限制:3000ms 特判: No 通过数:6 提交数:6 难度:2 题目描述: SZ市是中国改革开放建立的经济特区,是中国改革开放的窗口,已发展为有一定影 ...