前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web浏览器中的JavaScript

Web浏览器中的JavaScript

作者头像
奋飛
发布2019-08-15 16:01:15
6630
发布2019-08-15 16:01:15
举报
文章被收录于专栏:Super 前端Super 前端

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://ligang.blog.csdn.net/article/details/42619701

一、Location对象

Location对象指定当前显示在窗口中的URL,并允许脚本往窗口里载入新的URL。

代码语言:javascript
复制
// 设置location属性,从而跳转到新的web页面
window.location = "http://www.ligang.com";

Window对象中其中一个最重要的属性是document,它引用Document对象,后者表示显示在窗口中的文档。

二、客户端JavaScript线程模式--单线程

单线程执行意味着浏览器必须在脚本和事件句处理程序执行的时候停止响应用户输入。 HTML5定义了一种并发的控制方式,叫做“Web worker”。

三、同源策略

1. 同源策略是对JavaScript代码能够操作那些web内容的一条完成的安全限制,其不能防止服务器攻击。 2. 文档的来源包括:协议、主机以及载入文档的URL端口。 3. 为了支持多域名站点,可以使用Document对象的domain属性。在默认情况下,属性domain存放的是载入文档的服务器主机名。如果两个窗口(或窗体)包含的脚本把domain设置成了相同的值,那么这两个窗户就不再受同源策略的约束,它们可以相互读取对方的属性。 [1] 跨域资源共享CORS(Cross-Origin Resource Sharing),它允许服务器用头信息显示的列出源,或使用通配符来匹配所有的源并允许由任何地址请求文件。 [2] 跨文档消息(cross-document messaging),允许来自一个文档的脚本可以传递文本消息到另一个文档里的脚本,而不管脚本的来源是否不同,调用Window对象上的postMessage()方法,可以异步传递消息事件到窗口的文档里。

四、跨站脚本

代码语言:javascript
复制
// 获取请求URL的“?”后的内容
decodeURIComponent(window.location.search.substring(1)) || ""; 
代码语言:javascript
复制
http://siteA/index.html?name=%3Cscript%3Ealert('XSS')%3C/script%3E   //<script>alert('XSS')</script>
http://siteA/index.html?name=%3Cscript%20src='xss.js'%3E%3C/script%3E 	//<script src='xss.js'></script>
//防止上述XSS攻击最简单的方式是,在使用任何不可信的数据来动态的创建文档内容之前,从中移除Html标签。
name = name.replace(/</g,"≶").replace(/>/g,">");

五、Window对象

1. setTimeout()和setInterval()前者只调用一次,后者在指定毫秒数间隔里重复调用。二者均可传递给clearInterval(),取消后续函数的调用。 2. Document对象的location属于也引用到Location对象;

代码语言:javascript
复制
window.location === document.location;  //总是返回true

3. 解析URL

代码语言:javascript
复制
// 提取URL的搜索字符串中的参数
function urlArgs(){
	var args = {};
	var query = location.search.substring(1);
	var pairs = query.split("&");
	for(var i=0; i<pairs.length; i++){
		var pos = pairs[i].indexOf('=');
		if(pos == -1) continue;
		var name = pairs[i].substring(0,pos);
		var value = pairs[i].substring(pos+1);
		value = decodeURIComponent(value);
		args[name] = value;
	}
	return args;
}

4. 载入新的文档 如果文档中没有元素ID是“top”,它会让浏览器跳到文档开始处: location = "#top"; //跳转到文档顶部 5. 浏览历史 History对象是用来把窗口的浏览历史用文档和文档状态列表的形式表示。 后退:back()、前进:forward()、history.go(-2)。子窗口的浏览历史会按时间顺序穿插在主窗口的历史中。 jQuery有history插件,RSH也是一个比较流行的实例。 6. Navigator对象 Web浏览器全称:appName 浏览器版本:appVersion Http头部发送信息;userAgent 操作系统:platform 7. 对话框

代码语言:javascript
复制
do{
	var name = prompt("what is your name?");	// 得到一个字符串输入
	var correct = confirm("You entered '"+ name +"'.\n"); 	// 得到一个布尔值
}while(!correct)
alert("Hello "+name);	// 输出一个纯文本消息

六、多窗口和窗体

1. 任何窗口或窗体中的JavaScript代码都可以将自己的窗口和窗体引用为window或self。 2. 对于顶级窗口来说:self = parent = top 3. top属性引用的是指向包含它的顶级窗口。 4. iframe元素有contentWindow属性,引用该窗体的Window对象。

代码语言:javascript
复制
var childFrame = document.getElementById("f1").contentWindow;

七、函数在定义它的作用域中执行,而不是在调用它的作用域中执行。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年01月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Location对象
  • 二、客户端JavaScript线程模式--单线程
  • 三、同源策略
  • 四、跨站脚本
  • 五、Window对象
  • 六、多窗口和窗体
  • 七、函数在定义它的作用域中执行,而不是在调用它的作用域中执行。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档