在html里嵌入javascript:

在html文档里嵌入客户端javascript代码有4种方式:

1.内联,放置在<script>和</script>标签对之间;

2.放置在由<script>标签的src属性指定的外部文件中;

3.放置在HTML事件处理程序中,该事件处理程序由onclick或onmouseover这样的HTML属性值指定;

4.放在一个URL里,这个URL使用特殊的“javascript:” 协议。

实例:实现一个简单的javascript数字时钟程序:

toLocaleTimeString() 方法可根据本地时间把 Date 对象的时间部分转换为字符串,并返回结果

语法:dateObject.toLocaleTimeString()

返回值:dateObject 的时间部分的字符串表示,以本地时间区表示,并根据本地规则格式化

<div id="clock"></div>
 //定义一个函数用以显示当前时间
function disTime(){
//找到id = "clock"元素
var time = document.getElementById("clock");
//获取当前时间
var date = new Date();
//toLocaleTimeString(); Date对象的时间部分转换为字符串,并返回结果,将返回的结果赋值到time中
time.innerHTML = date.toLocaleTimeString();
//在1秒后再次执行(显示秒的跳动)
setTimeout(disTime,1000)
}
//当onload事件发生时开始显示时间
window.onload = disTime;

 脚本类型:

老的浏览器在<script>标记上用language属性代替type属性:

<script language="javascript">
//这里是javascript代码...
</script>

language属性已经废弃,不应该再使用了。

当web浏览器遇到<script>元素,并且这个<script>元素包含其值不被浏览器识别的type属性时,它会解析这个元素但不会尝试显示或执行它的内容,意味着可以使用<script>元素来嵌入任意的文本数据到文档里,只要用type属性为数据声明一个不可执行的类型。

HTML中的事件处理程序:

当脚本所在的HTML文件被载入浏览器时,这个脚本里的javascript代码只会执行一次。为了可交互,javascript程序必须定义事件处理程序。

onchange  事件会在域的内容改变时发生(例如用户选择或取消选择复选框时执行)

URL中的javascript:

javascript:URL可以用在可以使用常规URL的任意地方:比如<a>标记的href属性,<form>的action属性,甚至window.open()方法的参数。超链接里的javascript URL可以是这样:

<a href="javascript:new Date().toLocaleString()"></a>

如果要确保javascript:URL不会覆盖当前文档,可以用void操作符强制函数调用或给表达式赋予undefined值:

<a href="javascript:void window.open('about:blank')">打开一个新窗口</a>

如果这个URL里没有void操作符,调用window.open()方法返回的值会(在一些浏览器里)被转化为字符串并显示,而当前文档也会被覆盖为包含该字符串的文档:

[object Window]

同步、异步和延迟的脚本:

展示1996年最先进的javascript的样子,载入时生成文档内容:

function factorial(n){
if(n<=1)return n;
else return n*factorial(n-1);
}
document.write("<table>"); //开始创建HTML表
document.write("<tr class='ab'><th>n</th><th>n!</th></tr>"); //输出表头
for(var i = 1;i<=10;++i){ //输出10行
document.write("<tr class='ab'><td>" + i + "<td></td>" + factorial(i) + "</td></tr>")
}
document.write("</table>"); //表格结束
document.write("Generated at" + new Date()); //输出时间戳

创建元素  document.createElement("");

事件驱动的javascript:

addEventListaner()的方法,允许注册多个监听器:

window.addEventListener('load',function(){....},false);

函数的第一个参数是事件的名称,在IE8以及之前的浏览器中,必须使用一个相似的方法,叫做attachEvent():

window.attachEvent('load',function(){....},false);

异步脚本禁止使用document.write();

attachEvent()不像addEventListener()一样强大,并且在IE提供的基础上透明地实现整个标准并非真正可行。反之,开发者有时定义一个折中的事件处理方法,通常叫addEvent(),它可以用addEventListener()或attachEvent()来方便地实现绑定事件的功能。然后,它们在所有的代码里用addEvent()来代替addEventListener()或attachEvent()。

document.readyState()

定义和用法:

readyState 属性返回当前文档的状态(载入中……)。

该属性返回以下值:

  • uninitialized - 还未开始载入
  • loading - 载入中
  • interactive - 已加载,文档与用户可以开始交互
  • complete - 载入完成

语法:

document.readyState

所有主要浏览器都支持 readyState 属性

事件DOMContentLoaded和load的区别

他们的区别是,触发的时机不一样,先触发DOMContentLoaded事件,后触发load事件。

DOM文档加载的步骤为

  1. 解析HTML结构。
  2. 加载外部脚本和样式表文件。
  3. 解析并执行脚本代码。
  4. DOM树构建完成。//DOMContentLoaded
  5. 加载图片等外部文件。
  6. 页面加载完毕。//load

在第4步,会触发DOMContentLoaded事件。在第6步,触发load事件。
用原生js可以这么写

// 不兼容老的浏览器,兼容写法见[jQuery中ready与load事件](http://www.imooc.com/code/3253),或用jQuery
document.addEventListener("DOMContentLoaded", function() {
// ...代码...
}, false); window.addEventListener("load", function() {
// ...代码...
}, false);

用jquery这样写:

// DOMContentLoaded
$(document).ready(function() {
// ...代码...
}); //load
$(document).load(function() {
// ...代码...
});

原文链接:http://www.jianshu.com/p/d851db5f2f30

 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。

当 DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。

处理兼容性问题的类库:

canvas:下载网址:http://code.google.com/p/explorercanvas/downloads/list

ie 会看起来像支持<canvas>元素一样    (类库)

jQuery兼容所有浏览器

功能测试:

 if(element.addEventListener){
//在使用这个W3C方法之前首先检测它是否可用
element.addEventListener('keydown',handler,false);
element.addEventListener('keypress',handler,false)
}else if(element.attachEvent){
//在使用该IE方法之前首先检测它
element.attachEvent('onkeydown',handler);
element.attachEvent('onkeypress',handler)
}else{
//否则,选择普遍支持的技术
element.onkeydown = element.onkeypress = handler;
}

Internet Explorer里的条件注释:

<!--[if IE 6]><![endif]>    注释后其他浏览器就不会载入它

IE中的javascript条件注释以文本/*@cc_on开头,以文本@*/

/*@cc_on

@if(@_jscript)

//该代码位于一条js注释内但在IE中执行它

@end

@*/

decodeURIComponent 

定义和用法:

decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。

decodeURIComponent(URIstring)

返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换

实例:

<script type="text/javascript">

var test1="http://www.w3school.com.cn/My first/"

document.write(encodeURIComponent(test1)+ "<br />")
document.write(decodeURIComponent(test1)) </script> 输出:
http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F
http://www.w3school.com.cn/My first/

window.location

window.location 对象在编写时可不使用 window 这个前缀。
location.hostname 返回 web 主机的域名
location.pathname 返回当前页面的路径和文件名
location.port 返回 web 主机的端口 (80 或 443)
location.protocol 返回所使用的 web 协议(http:// 或 https://)
location.href 属性返回当前页面的 URL
location.search 从问号开始(?)开始的URL(查询部分)
document.write(location.href);
输出:http://www.w3school.com.cn/js/js_window_location.asp document.write(location.pathname);
输出:/js/js_window_location.asp location.assign() 方法加载新的文档
function newDoc()
{
window.location.assign("http://www.w3school.com.cn")
}
<input type="button" value="加载新文档" onclick="newDoc()">

JS 脚本捕获页面 GET 方式请求的参数?其实直接使用 window.location.search 获得,然后通过 split 方法结合循环遍历自由组织数据格式

var searchURL = window.location.search;
searchURL = searchURL.substring(1, searchURL.length);
var targetPageId = searchURL.split("&")[0].split("=")[1];
onbeforedeactivate   deactivate 过滤删除
前者在切换到window的其它程序时会激发,后面不会;光标落到另一个元素后,前者先产生另一个元素的onfocus事件,
再产生本元素的onblur事件,后者则是先本元素的onbeforedeactivate事件,如果返回true后,
然后再另一个元素的onfocus事件,如果返回false,则不会激发另一个元素的事件
(?鼠标右键除外,并且此时另一元素的onfocus对鼠标右键也感冒);
用onbeforedeactivate可以解决抢焦点的死循环
<input type="text" onblur="alert('OK1');event.srcElement.select();return false;" />
<input type="text" onblur="alert('OK2');event.srcElement.focus();return false;" />
这样会产生死循环,而以下代码则不会
<input type="text" onbeforedeactivate="alert('OK1');event.srcElement.select();return false;" />
<input type="text" onbeforedeactivate="alert('OK2');event.srcElement.focus();return false;" />

web浏览器中的javascript -- 2的更多相关文章

  1. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  2. JavaScript权威指南--WEB浏览器中的javascript

    知识要点 1.客户端javascript window对象是所有客户端javascript特性和API的主要接入点.它表示web浏览器的一个窗口或窗体,并且可以用window表示来引用它.window ...

  3. web浏览器中的javascript 1

    Html 文档嵌入客户端有4种方式. 1. 内联.放置在<script>和</script>标签对之间. 2.放置在<script>标签的src属性指定的外部文件中 ...

  4. web浏览器中的javascript

    window 对象中其中一个最重要的属性是document,它引用document对象,后者表示显示在窗口中的文档.document对象有一些重要方法,比如getElementById(),它可以基于 ...

  5. Node中的JavaScript和浏览器中的JavaScript的区别

    浏览器中的JavaScript: 1.基于ECMAscript规范,这个规范规定了语法 2.添加了dom:用来处理文档 document object model 3.添加了BOM:用于操作浏览器 w ...

  6. web浏览器中javascript

    1.异步载入一个js代码function loadasync(url) { var head = document.getElementsByTagName("head")[0]; ...

  7. websocketj--随时随地在Web浏览器中操作你的服务端程序

    0 - 有没有觉得Linux标准终端界面输入输出枯燥无味? 1 - 什么?vmstat命令的输出数据不直观?有没有想过能够可视化该命令的输出? 2 - 尝试过用浏览器操作Windows中的cmd吗? ...

  8. 谷歌开发人员在现代Web浏览器中发现严重跨域漏洞

    Google谷歌研究人员在现代网络浏览器中发现了一个严重漏洞,该漏洞可能允许您访问的网站从您登录同一浏览器的其他网站窃取您的在线帐户的敏感内容. 由Google谷歌Chrome的开发者支持者Jake发 ...

  9. 在web浏览器中判断app是否安装并直接打开

    最近公司App产品在运营推广上有一个需求,就是要求可以让用户在访问我们的推广网页时,就可以判断出这个用户手机上是否安装了我们的App,如果安装了则可以直接在网页上打开,否则就引导用户前往下载.从而形成 ...

随机推荐

  1. Ubuntu 10.04上安装MongoDB

    MongoDB是一个可扩展.高性能的下一代数据库.MongoDB中的数据以文档形式存储,这样就能在单个数据对象中表示复杂的关系.文档可能由 以下几 部分组成:独立的基本类型属性.“内嵌文档”或文档数组 ...

  2. scrollHeight, scrollTop, clientHeight

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 基于px2rpx-loader,探讨一下loader的封装思想

    本文以px2rpx-loader的源码为学习对象,了解其工作机制以及loader封装的思想. 1.前言 最近在了解mpvue框架的时候,对于其能够实现一套代码兼容web和微信小程序(以下简称小程序)的 ...

  4. inline-block问题

    1.两个相邻的inline-block元素,给inline-block元素设置max-width并且overflow:hidden;之后,相邻行内元素回向下偏移问题 给inline-block元素添加 ...

  5. C#如何使用异步编程【BeginInvoke/EndInvoke】

    怎么使用异步,就是用委托进行处理,如果委托对象在调用列表中只有一个方法,它就可以异步执行这个方法.委托类有两个方法,叫做BeginInvoke和EndInvoke,它们是用来异步执行使用. 异步有三种 ...

  6. 想学习一下node.js,重新安装配置了node

    根据这个网站上的教程安装配置的,还不错一次就成功了.觉得安装没什么,就是配置路径的时候容易错. http://www.runoob.com/nodejs/nodejs-install-setup.ht ...

  7. CI 框架源码解析一之入口文件 index.php

    Index.php作为CI框架的入口文件,源码分析,自然而然由此开始.在源码分析的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现,如果英文水平很好的话,读过index.php文件的英文注释之 ...

  8. 面向对象特性 - php

    1.类的字段调用格式 公用字段   类内调用 $this->字段名  类外调用 $对象名->字段名 静态  类内调用 self::$字段名   类外调用 类名::$字段名 常量 类内调用 ...

  9. html常用的实体符号

    HTML中有用的字符实体 字符实体的书写方式如:&entity_name(实体名称法) 或 &#entity_number(实体数字法) 例如用字符实体的形式表示小于号:< 或 ...

  10. 003---wsgi和wsgiref模块

    WSGI: 全称:Web Server Gatway Interface ,web服务网关接口,独立的,与django无关,他们俩只是遵循一个约定,是一个协议. wsgiref模块: 实现了WSGI协 ...