Web基础之JavaScript(二)

window对象

  • DHTML
  1. 操作HTML以创造各种动态视觉效果,是一种浏览器端的动态网页技术。
  2. DHTML的功能:
    —> 动态改变页面元素。
    —> 事件响应机制制作动态折叠的树形结构和菜单。
    —> 与用户进行交互等。
  3. 对象模型:
Paste_Image.png

window

表示浏览器中打开的窗口。也是父对象。
1)常用属性:
①name:窗口名称。
②opener:打开当前窗口的window对象(引用)。
③status:窗口底部状态栏信息。
2)常用子对象:
①document:代表给定浏览器窗口中的HTML文档。
②history:包含了用户浏览过的URL信息。
③location:包含关于当前URL的信息。
④navigator:包含Web浏览器的信息。
⑤screen:包含关于客户屏幕和渲染能力的信息。
⑥event:代表事件状态。
3)方法:
—> alert(str) : 提示对话框,显示str字符串的内容。
—> confirm(str) :确认对话框,按确定返回true,其他操作返回false;
—> prompt(str,value):输入对话框。采用文本框输入信息,str为提示信息,value为初始值,按“确定”返回输入值,其他操作返回undefine,value可省。
//使用:var msg = confirm(str); if(msg==true){…}
【注意:window.prompt("请输入ID:");//因为不能控制它,所以很少用】
—> window.open(url):重复打开。
—> window.open(url,windowName):采取命名方式,避免重复打开
—> window.open(url,windowName,config):config设置新窗口外观如高和宽。
windowName: _blank:在新窗口中打开;_self:当前窗口中打开;_top:当前网页上部窗口中打开
config: top/left:窗口离屏幕顶部/左边距离; width/height:窗口宽高;
menubar/toolbar/scrollbar/status:yes,no窗口有没有菜单/工具条/滚动条/状态栏
—> window.close():关闭窗口。

function Wopen(){
      var win = window.open("http://www.imooc.com","_blank","width=300,height=200,
      menubar=no,toolbar=no,status=no”);
}

周期性定时器
—>window.setInterval(exp,time):周期性触发代码exp,返回已经启动的定时器。exp:执行语句,time:时间周期,单位为毫秒;
【注意:调用:setInterval("clock()",1000)或setInterval(clock,1000)】
—> window.clearInterval(tObj):停止启动的定时器。tObj:启动的定时器对象。
一次性定时器
—>window.setTimeout(exp,time):一次性触发代码exp,返回已经启动的定时器。exp:执行语句,time:时间周期,单位为毫秒。
【注意:调用自身可无限次循环】
—> window.clearTimeout(tObj):停止启动的定时器。tObj:启动的定时器对象。
—> print():打印当前窗口内容
—> focus():把键盘焦点给予一个窗口
—> blur():把键盘焦点从顶层窗口移开
—> moveBy():可相对窗口的当前坐标把它移动指定的像素
—> moveTo():把窗口的左上角移动到一个指定的坐标
—> resizeBy():按照指定的像素调整窗口的大小
—> resizeTo():把窗口大小调整到指定的宽高
—> scrollBy():按照指定的像素来滚动内容
—> scrollTo():把内容滚动到指定坐标

Document对象与DOM

  • 概念:
    1)每个载入浏览器的HTML文档都会成为Document对象。
    ①通过使用Document对象,可以从脚本中对HTML页面中的所有元素进行访问(操作文档中的任何内容,都通过Document)。
    ②Document对象是window对象的一部分,可通过window.document方式对其进行访问。
    2)DOM:Document Object Model,文档对象模型,HTML文档中的所有节点组成了一个文档树(或节点树)。
    ①树起始于文档节点,Document对象是一颗文档树的根。
    ②HTML文档中的每个元素、属性、文本等都代表这树中的一个节点。
    ++ write(“str”) 直接向HTML输出流写内容;是eval的一种形式。eval要尽量避免,是出于安全考虑,因为eval过于强大,把可string串当作代码执行。若使用不好可千万安全漏洞。

公有属性:
—> nodeName:给定节点的名字(字符串,只读);
—> nodeType:给定节点的类型(整数,只读;元素 1 ;属性 2;文本 3;注释 8;文档 9)
—> nodeValue:给定节点的当前值(元素的为underfine或null;文本的是文本自身;属性节点是属性的值)

  • 根据元素ID查找节点
    1)方法:document.getElementById(idValue)
    2)忽略文档的结构,通过指定的ID来返回元素节点。
    3)可以查找整个HTML文档中的任何HTML元素。
    【注意:如果ID值错误,则返回null。】
  • 根据层次查找节点
    1)遵循文档的层次结构,查找单个节点:parentNode、firstChild、lastChild、parentNode、nestSibling(下一个子节点)、previousSibling(给定节点上一个子节点)
    2)遵循文档的层次结构,查找多个节点:
    childNodes:以s结尾的都是数组,则有length属性。
    【注意:节点之间的空白符,在firefox、chrome、opera、safari浏览器是文本节点,所以IE是3,其它浏览器是7】
如: var sObj=document.getElementById("sell");
        alert(sObj.childNodes.length);  sObj.firstChild;
  • 根据标签名称查找节点

1)getElementsByTagName("namestr"):在某个节点的所有后代里查找某种类型的元素(根据指定的标签名),并返回所有的元素(返回一个节点列表)。
①忽略文档的结构,查找整个HTML文档中的所有元素。
②如果标签名错误,则返回长度为0的节点列表。
【注意:方法名为getElements,故返回的是一个数组】
2)length属性:返回的是一个节点列表,是个数组,因此可用length属性获取元素个数。使用[index]可定位具体的元素。
getElementsByName(“name”):通过元素的name中的内容来查找 ,返回一个数组;

  • 读取节点信息
    1)规则一:将HTML标签对象化,操作前先明确被对象化的标签都有什么属性。
    如:aObj代表一个<a href="">元素</a>,有aObj.href属性,但没有aObj.value和aObj.src
    2)规则二:innerHTML:设置或获取位于对象起始和结束标签内的内容。
    如:aObj.innerHTML可修改<a href="">元素</a>标签中的“元素”两字
    【注意:<input />单标签无法用innerHTML修改内容。】
    3)规则三:nodeName:得到某个元素节点和属性节点(即可得到标签或属性名称)及其类型位置。xxx.nodeName:当未知节点类型时,使用该属性获得节点的名称,全大写方式。
    如:if(xxx.nodeName == "IMG") xxx.src = "http://...";
    4)节点属性:getAttribute(“attrName”)方法:根据属性名称获取属性的值。
    用于将HTML标签、属性、CSS样式都对象化。
    setAttribute(name,value):设置属性值;若不存在具有指定名称的属性,该方法将创建一个新属性。
  • 修改节点信息
    1)style属性:语法:node.style.color; node.style.fontSize
    【注意:CSS样式中属性名内有“-”的,这里省略,并把后面单词首字母大写!
    ;属性值要加上引号】
    2)className属性:语法:var Obj=document.getElementById("p1");
    如:Obj.classname="样式类名称";//可用于设置不同的样式。
  • 查找并修改节点信息
    1)使用getElementById()方法找到元素节点。
    2)修改元素内容:innerHTML
    3)修改样式:style属性或className属性
    4)修改属性:html属性
  • 增加新节点
    1)步骤:
    ① 创建一个新元素,document.createElement(“elementName");比如:元素名可为a/input/option等;返回新创建的节点。
    ② 为新元素设置相关的数据。如:
var newNode=document.createElement("input");
newNode.type="text"; newNode.value="mary";
newNode.style.color="red";

③ 把新节点加入树上(新元素加入文档),作为树上某个节点的子节点存在。

xxx.appendChild(newNode);//追加
xxx.insertBefore(newNode,oldNode);//新节点放在旧节点之前
  • 删除节点
    1)语法:parentNode.removeChild(childNode);
    【注意:一定是从父节点删除子节点,不能直接删除子节点。】
    其他:
    createTextNode():创建一个包含给定文本的新文本节点
    replaceChild():把一个给定父元素的一个子节点替换为另一个节点

博客地址:Web基础之JavaScript(二)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,752评论 0 8
  • 一、概述 document节点是整个文档树的顶层节点,每张网页都有自己的document节点。window.doc...
    周花花啊阅读 1,299评论 0 1
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,238评论 0 5
  • 如需回顾之前章节,请见文末“前文回顾”。 在做出离开G司的决定后,Mike找我聊了很久。 他无法理解我为什么要在自...
    金融女王阅读 249评论 0 0
  • 只是突然有些小失落,朋友圈里的人陆陆续续都签了三方,反观我自己明明拿到的offer还不足以让我慢慢挑的地步,却还是...
    芽藤儿阅读 174评论 1 0