13.2.2外部文件中的脚本
<script src="../../script/util.js"></script>
13.2.3指定脚本语言
defer属性
例如定义了一个函数但并不用调用docment.write()的一个脚本,
可以使用<script>标记中的defer属性来提示游览器这样做是安全的:
继续解析HTML文档并延迟脚本的执行,直到遇到一个无法延迟的脚本。
<script defer></script>
13.2.5<noscript>标记
<noscript>标记,用来保存只有当浏览器中的Javascript被关闭的时候才要
提交的内容
</script>标记
字符串"</"+"script>"
13.2.7向较早的浏览器隐藏脚本
13.2.8非标准的Script属性
event for
13.3HTML中的事件句柄
onclick
onmousedown
onmouseup
onmouseover
onmouseout
onchange
onload <body>标记上
13.4URL中的JavaScript
javascript : var now = new Date(); "<h1>time</h1>"now;
javascript : alert("H");
Bookmarklets
<a href = 'javascript:var e="",r="";
do{e=prompt("Expression: "+e+"\n"+r+"\n",e);try{r="Result: "+eval(e);}catch(ex){r=ex;}}while(e);void 0;'>
JavaScript Evaluator</a>
13.5JavaScript 程序的执行
13.5.1执行脚本
13.5.2onload事件句柄
由于onload事件句柄在文档完全解析之后调用的,它们必须不调用document.write().
任何这样的调用都重新打开一个新的文档并且覆盖掉当前的文档
13.5.3事件句柄和Javascript URL
13.5.4onunload事件句柄
13.5.5作为执行环境的Window对象
13.5.7在载入过程中操作文档
13.6客户端兼容性
13.6.1不端兼容性的历史
<canvas>
13.6.2关于"现代的浏览器"
13.6.3功能测试
3.6.5IE中的条件注解
HTML注解
<!--[if IE]>
It will only be displayed in IE
<![endif]-->
<!--[if gte IE 6]>
It will only be displayed in IE
<![endif]-->
<!--[if IE]><-->
It will only be displayed in IE
<!--> <![endif]-->
JavaScript注解
/*@cc_on
@if(@_jscript)
alert("In IE");
@end
@*/
在一个条件注解内部,关键字 @if @else和@end划定除了哪些是要被IE
的JavaScript解释器有条件的执行的代码。大多数时候,只需要上面所示
的名字,而@_jscript变量在IE中总是为true
13.7可访问性
13.8Javascript安全性
13.8.1javascript不能做什么
var name = decodeURIComponent(window.location.search.substring(6))||"";
document.write(name);
第14章
脚本花浏览器窗口
14.1计时器
setTimeout()
ClearTimeout()
setInterval()重复的调用
clearInterval()
14.2浏览器Location和History
14.2.1解析URL
function getArgs(){
var args = new Objecet();
var query = loaction.search.substring(1);
var pairs = query.split("&");
for(var i=0;i<pairs.length;i++){
var pos = pairs.indexOf('=');
if(pos==-1)continue;
var argname =pairs[i].substring(0,pos);
var value=pairs[i].substring(pos+1);
value = decodeURLComponent(value);
args[argname] = value;
}
return args;
}
14.2.2载入新的文档
Location 对象确实还有两种实现这一相关的方法。
方法reload()会从服务器上再次装入当前显示的页面。
方法replace()会装载并显示指定的URL
当调用replace()时,指定的URL就会替换浏览器历史列表中的当前URL,而不
是在历史列表中创建一个新条目.
Window对象的location属性和Document对象的location属性不同
前者引用一个Location对象,而后者只是一个只读字符串,并不具有Location
对象的任何特性。document.location与document.URL是同义
14.2.3History对象
方法back()和forward()
go()
14.3获取窗口、屏幕和浏览器信息
14.3.1窗口的几何大小
var windowWith = window.outerWidth;
var windowHeight = window.outerHeight;
var windowX = window.outerX;
var windowY = window.outerY;
var viewportWidth = window.innerWidth;
var viewportHeight = window.innerHeight;
var horizontalScrool = window.pageXOffset;
var verticalScrool = window.pageYOffset;