Javascript DOM 编程艺术读书笔记16/03/26

更新时间 2016-03-27 01:14:15



外设javascript文件操作的标准模板归纳

javascript不需要事件必须在HTML文档处理,可以在外部javascript的文件把一个事件添加到HTML的某个元素上

element.event = atciotn

关键是如何把这个元素确定下来,这个问题类似css,可以用class或者id

如果把某个事件添加到某个确定id的元素上,可以用getElementById()

document.getElementById("id") .event = action

如果事件涉及多个元素,可以用getElementByTagName()和getAttribute()方法把事件添加到特定属性的一组元素上

以onclick事件和popUP()函数为例,实现html中特定a元素,点击后弹出小窗口



先定义popUp():

function popUp(winURL){

  window.open(winURL,"popup","width=100,height=100");

}


  1. 把文档中的所有链接元素(a)放入数组
  2. 遍历数组元素
  3. 如果某个链接元素的class=“popup”,说明需要被点击时调用popUP()

  3中注意一下两点

  • 把这个链接元素的href传递给popUp()函数
  • 取消这个链接的默认行为,不要把这个链接的访问者带到新的窗口


代码

var links = document.getElementsByTagName("a");

for(var i=0;i<links.length;i++){

  if(links[i].getAttribute("class")=="popup"){

    links[i].onclick = function(){

      popUp(this.getAttribute("href"));

      return false;

    }

  }

}



但是上述代码是有一定的问题,不会被运行

第一行:

var links = var document.getElementsByTayName("a");

这条在javasript文件被加载时立即运行,英文词javascript文件从html文档的<head>部分的<script>标签调用,的,所以他将在HTML文档之前加载到浏览器中,而此时HTML文档还没有全部加载到浏览器中,文档模型不完整,美哟完整的DOM,getElementsByTagName()不能正常运行

必须在HTML文档全部加载到浏览器中,才能执行

HTML文档全部加载到浏览器中时,会触发一个时间,这个事件有onload处理函数

HTML被加载到浏览器中时,document对象又是window对象的一个属性,当window对象触发onload事件时,document已经存在

所以在执行上述事件时,可以在之前添加window.onload = prepareLinks;      将上述函数打包在prepareLinks()函数中



总结:

jsp函数动态触发,通过给事件处理函数添加函数实现给web页面的实时控制

其实可以判断,对HTML文档对象进行操作是,几乎所有操作 都在

window.onload = function{

  func1();

  fun2();

  .....

}

有了完整的DOM,才能有document对象,我们得到元素对象好像只能通过document.xxx得到



向后兼容性

对象探测

浏览器可能关闭了javaspript,不通浏览器对jsp的功能支持也不通

要到内置函数时,需要判断该函数是否浏览器支持

function myfunc(){

  if(!document.getElementsByTagName())return ; // 如果是onclick触发,不想把用户带到新的窗口,应该return false;所以视具体情况而定

  ...

}

时间: 2024-10-14 23:00:46

Javascript DOM 编程艺术读书笔记16/03/26的相关文章

Javascript DOM 编程艺术读书笔记16/04/01

愚人节快乐 开始用webstorm了,随着学习深入,代码越来越长,因为不借助ide还真是挺难的 今天发现了一个严重的误区,text和textNode是完全不同的两个概念,之前没有特别注意,写代码很容易跳过createTextNode直接用parentNode.appendChild(text) 单独拎出来晒一晒,以后引以为戒 Javascript DOM 编程艺术读书笔记16/04/01

Javascript DOM 编程艺术读书笔记16/04/02

最后更新 2016-04-02 16:14:06 前言: 前面都是讲用jsp语法改变html现有的内容,本节讲一下如何动态得给html插入内容 如果深入理解dom节点树,我们了解html内容其实是以节点树的方式存在,改变内容,就是给节点树添加新的节点 当然,我们用jsp给web页面添加内容,并不会改变原来的html文档 创建节点的两个重要的函数 createElemnt("x")  创建元素节点,返回新创建的节点的引用 createTextNode("text")

JavaScript DOM编程艺术 读书笔记

3 DOM DOM分别指document,object和model. DOM中包含的节点主要分为三种:元素节点.文本节点和属性节点.DOM的原子是元素节点,标签的名字就是元素的名字,元素可以包含其他的元素.没有被包含在其他元素里的唯一元素是<html>元素,它是树节点的根元素:在XHTML文档里,文本节点总是被包含在元素节点的内部.但并非所有的元素节点都包含有文本节点:属性节点用来对元素做出更具体地描述. 有3种DOM方法可获取元素节点,分别是通过元素ID.通过标签名字和通过类名字来获取. 1

JavaScript DOM编程艺术读书笔记(一)

第一章,第二章 DOM:是一套对文档的内容进行抽象和概念化的方法. W3C中的定义:一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态的访问和修改文档的内容,结构和样式. DHTML(Dynamic HTML):动态HTML的简称,不是一项新技术,而是通过HTML CSS 和Javascript组合的.DHTML背后的含义其实就是: 利用HTML把网页标记为各种元素: 利用CSS设置元素样式和它们显示的位置: 利用JavaScript实时地操纵页面和改变样式. 但是虽然浏览器制造

JavaScript DOM编程艺术读书笔记(四)

第十章 实现动画效果 var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")"; 第一个参数是个字符串,所以需要单引号!!! move_elem = setTimeout(repeat,interval); //复制给一个变量,当我们想取消一个正在排队等待执行的函数,可以用clearTimeout(mov

《JavaScript DOM 编程艺术》 ——笔记

以下只是个人的读书笔记,限于本人的知识局限性,可能有偏差.请见谅,欢迎指出问题. 1.本书的名字就是<JavaScript DOM 编程艺术>,那么首先什么是DOM呢? DOM-Document Object MOdel,按字面上的意思翻译就是文本对象模型.“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构和样式.” 它将网页抽象成一个节点树: <!DOCTYPE html> <html lang="en&

《javascript dom编程艺术》笔记(二)——美术馆示例

这几天把这本书看完了,里面大部分知识我已经会了,所以看得就略简单,好多地方都没有再去动手去做,我知道这样是不对的,以后补吧. 现在我要做的是把这本书的笔记完结掉,不然总觉得有啥事没有做. 这个版本不是书中的最后版本,好像是第二版吧.后面还有动态创建结点的一版本,我已经在别的地方实践过了,就不再做了. 只贴出两个函数. //显示图片方法 function showPicture (whichpic) { //综合绑定的事件考虑,条件执行失败,希望浏览器可以让用户打开图片,因此在onclick处re

《javascript dom编程艺术》笔记(一)——优雅降级、向后兼容、多个函数绑定onload函数

刚刚开始自学前端,如果不对请指正:欢迎各位技术大牛指点. 开始学习<javascript dom编程艺术>,整理一下学习到的知识.今天刚刚看到第六章,记下get到的几个知识点. 优雅降级 看到版本翻译为预留退路,刚刚看到个名词,我觉得很奇怪,以前没有听说过啊.不过看到英文注释就知道了Graceful degradation不就是优雅降级么,听说过! 书中举了个例子,点击一个链接,弹出一个窗口的方法. function popUp(WinURL){ window.open(WinURL,&quo

JavaScript DOM编程艺术学习笔记(一)

嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推荐给想了解HDOM的相关人员!首先非常感谢作者写出了这么好的一本书,谢谢!书中的内容比较多,我仅记下我认为对自己和他人有所帮助的一些内容! 嗯,首先还是让代码来说话吧! 下面是两段此书中反复强调且通用的经典代码段 1:相当的经典和实用,尤其是当需要为页面加载函数绑定多个函数的时候 /** * [addLoad