前端学习 JavaScript基础

前端学习 JavaScript基础,第1张

文章目录 1 DOM基础 ---- 元素 *** 作1.1 DOM是什么?1.2 节点类型1.3 获取元素(获取元素的节点)1.4 DOM *** 作 - 创建元素1.5 插入元素1.6 删除元素1.7 复制元素1.8 替换元素 2. DOM 进阶 --属性 *** 作2.1 HTML属性 *** 作2.1.1 对象属性2.1.2 对象方法 2.2 CSS属性 *** 作2.3 DOM遍历2.4 innerHTML和innerText 3 事件基础3.1 事件的调用方式3.2 鼠标事件3.3 键盘事件3.4 表单事件3.4.1 onfocus 和 onblur属性3.4.2 onselect 属性3.4.3 onchange属性 具有多个选项的表单元素 3.5 编辑事件 防止复制3.6 页面事件 4 事件进阶4.1事件监听器4.2 this对象4.3 even对象 5. window对象5.1 窗口 *** 作5.1.1 打开窗口5.1.2 关闭窗口 5.2 对话框5.3 定时器5.4 location对象 *** 作当前页面地址(URL)5.5 navigator对象 获取浏览器的详细信息 6. document对象6.1 document对象常用属性6.2 document常用的方法

1 DOM基础 ---- 元素 *** 作 1.1 DOM是什么? DOM, "Document Object model”(文档对象模型),它是由W3C定义的一个标准DOM *** 作,可以简单理解成:元素 *** 作;实际开发中,常见的DOM *** 作:
(1)改变这个元素的颜色
(2)点击这个元素实现某些效果
(3)直接把这个元素删除在DOM中,我们使用“树形结构”来表示一个页面, 在这个树上,html标签就是树根,叫做根元素。html标签内部有 head、body这两个标签,这两个标签位于同意层,所以也叫做兄弟节点。html标签是作为这两个兄弟节点的父节点。head标签内部有两个标签,title和meta, 这两个标签也是作为head标签的子节点,所以,head就是这两个标签的父节点,这两个标签之间是兄弟节点。用这种简单的族谱关系,可以很清楚的把一个页面表示出来。

记住:每一个元素就是一个节点,而每一个节点就是一个对象。在 *** 作元素时,其实就是把这个元素看成一个对象,然后使用这个对象的属性和方法来进行相关 *** 作。 1.2 节点类型

DOM节点共有12种类型,记住常见的以下3种:
(1)元素节点
(2)属性节点
(3)文本节点
节点与元素是不一样的概念,节点包括元素

Javascript中,用nodeType属性来判断一个节点的类型
表1 不同节点的nodeType属性值123

节点类型注意事项:

一个元素就是一个节点,这个节点称之为“元素节点”;属性节点和文本节点看起来像是元素节点的一部分,但实际上,它们是独立的节点,并不属于元素节点;只有元素节点才可以拥有子节点,属性节点和文本节点都无法拥有子节点。元素的节点是被当成一个对象来处理,既然是对象,就有自己的属性 1.3 获取元素(获取元素的节点)

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
    <script>
        window.onload = function()
        {
            var oDiv = document.getElementById("main");
            oDiv.style.color="red";

            var oDiv = document.getElementsByTagName("div");
            for(var i=0; i<oDiv.length;i++)
            {
                oDiv[i].style.color="red";
            }

            var oDiv = document.getElementsByClassName("yuansu");
            for(var i=0; i<oDiv.length;i++)
            {
                oDiv[i].style.color="blue";
            }

            var oDiv = document.querySelector(".yuansu");
            oDiv.style.color="red";

            var oDiv = document.querySelectorAll(".yuansu");
            for(var i=0; i<oDiv.length;i++)
            {
                oDiv[i].style.color="yellow"
            }

        }
       
    script>
head>
<body>
      <div class="yuansu">选择了就不要回头看div>
      <div class="yuansu">选择了就不要回头看div>
      <div id="main">选择了就不要回头看div>
body>
html>
1.4 DOM *** 作 - 创建元素


(1) 创建一个简单的节点

var e2 = document.getElementsById(“id 名”) ;获取已有元素var e1 = document.createElement(“元素名”) ; 创建元素节点var txt = document.createTextNode(“文本内容”); 创建文本节点e1.appendChild(txt); 把文本插入元素节点e2.appendChild(e1); 把组装好的元素插入到已有元素e2中

(2)创建一个带有属性的节点
DOM对象有属性和方法,属性用A.B, 方法用A.function()

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
    <script>
        window.onload = function()
        {
            // 创建简单的节点,元素加文本
            var e2 = document.getElementById("jianchi");
            var e1 = document.createElement("strong");
            var txt = document.createTextNode("键盘敲烂");
            e1.appendChild(txt);
            e2.appendChild(e1);
            
            // 创建复杂节点,添加元素的属性.首先创建一个DOM对象,添加对象的属性.和方法()
            var oBody = document.body;
            var oInput = document.createElement("input");
            oInput.id = "submit";
            oInput.type = "button";
            oInput.value = "提交";

            oBody.appendChild(oInput);
        }
    script>
head>
<body>
    <div id="jianchi">div>
body>
html>

1.5 插入元素

(1)A.appendChild(B); 把一个新元素插入到父元素的内部子元素的“末尾”。
(2)insertBefore()将一个新元素插入到父元素中的某一个子元素“之前”。

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
head>
<script>
    window.onload = function()
    {
        // 首先获取插入按钮
        var oBtn = document.getElementById("btn");
        // 然后为按钮添加一个点击事件
        oBtn.onclick = function()
        {
            var oUl = document.getElementById("list");
            var oTxt = document.getElementById("txt");

            // 将文本框的内容转换为“文本节点”
            var textNode = document.createTextNode(oTxt.value);
            // 动态创建一个li元素
            var oLi = document.createElement("li");
            // 将文本节点内容添加到li元素中去
            oLi.appendChild(textNode);
            // 将li元素插入到ul元素中
            oUl.appendChild(oLi)
            // 将li元素插入到ul元素的第一个元素之前
            oUl.insertBefore(oLi,oUl.firstElementChild);

        };
    }
script>
<body>
    <ul id="list">
        <li>HTMLli>
        <li>CSSli>
        <li>JavaScriptli>
        <li>vue.jsli>
    ul>
    <input id="txt" type="text"> <input id="btn" type="button" value="插入" >
body>
html>

1.6 删除元素

A.removeChild(B);

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
head>
<script>
    window.onload = function()
    {
        // 首先获取这个按钮
        // var oBtn = document.getElementById("btn");
        // oBtn.onclick = function()
        // {
        //     var oUl = document.getElementById("list");
        //     oUl.removeChild(oUl.lastElementChild);
        // }

        // 删除整个列表,整个列表是body元素的子元素,可以通过获取Body元素,然后删除body元素中的子元素
        var oBtn = document.getElementById("btn");
        oBtn.onclick = function()
        {
            var oUl = document.getElementById("list");
            document.body.removeChild(oUl);
        }
    }
script>
<body>
    <ul id="list">
        <li>HTMLli>
        <li>CSSli>
        <li>JavaScriptli>
        <li>Vue.jsli>
    ul>
    <input id="btn" type="botton" value="删除"/>
body>
html>
1.7 复制元素

obj.cloneNode(bool);

1.8 替换元素

A.replaceChild(new,old);

2. DOM 进阶 --属性 *** 作

HTML属性 *** 作,指的是使用JavaScript来 *** 作一个元素的HTML属性。如下面的input元素,HTML属性 *** 作指的就是 *** 作它的id、type、value等,其他元素也类似。

JS *** 作HTML元素属性

获取HTML属性值设置HTML属性值

JS *** 作HTML元素属性的方式

对象属性对象方法 2.1 HTML属性 *** 作 2.1.1 对象属性

获取HTML属性值—通过属性名来找到属性对应的值
语法: obj.attr
说明: obj是元素名,它是一个DOM对象。所谓的DOM对象,指的是使用getElementById()、getElementsByTagName()等方法获取的元素节点。
            attr是属性名,对于一个对象来说,可以通过点运算符(.)来获取它的属性值。
设置HTML属性值
语法:obj.attr = “值”;
说明:obj是元素名,它一个DOM对象,attr是属性名。

2.1.2 对象方法

对象属性的方法,obj.attr, 只能获取元素中的固有属性,即HTML元素中本来就有的属性,不能获取自定义的属性。自定义属性,即我们自己定义的属性,如添加一个 data=“好好学习”,这种元素中本来没有的属性,对象属性的方法就不能用,只能使用对象方法来获取。
对象方法有:

obj.getAttribute(“attr”)    获取元素的某个属性的值,可以是“固有属性值”,也可以获取“自定义属性值”。 obj.setAttribute(“attr”,“值”)    设置元素的某个属性的值。 obj.removeAttribute(“attr”)    删除元素的某个属性。removeAttribute()更多情况下是结合class属性来“整体”控制元素的样式属性的。 obj.hasAttribute(“attr”)     判断元素是否含有某个属性。判断元素是否含有某个属性。 2.2 CSS属性 *** 作

getComputedStyle(obj).attr 获取CSS元素属性值

语法:getComputedStyle(obj).attr
例如: alert(getComputedStyle(oBox).backgroundColor);
getComputedStyle()方法其实有两种写法:getComputedStyle(obj).attr和getComputed Style(obj)["attr"]。
凡是对象的属性都有这两种写法,如oBtn.id可以写成oBtn["id"],document.getElementById("btn")可以写成document["getElementById"]("btn"),以此类推
设置值
(1)语法: obj.style.attr = "值";  obj表示DOM对象,attr表示CSS属性名,采用的同样是“骆驼峰”型。
obj.style.attr 等价于obj.style["attr"],如oDiv.style.width等价于oDiv.style["width"]。
例如: oBox.style.backgroundColor = "lightskyblue";

(2)对于复合属性(如border、font等)来说, *** 作方式也是一样的,举例如下。
oBox.style.border = "2px solid blue";

(3)可以使用cssText属性来同时设置多个CSS属性,这也是在元素的style属性中添加的。
obj表示DOM对象,cssText的值是一个字符串。
oDiv.style.cssText = "width:100px;height:100px;border:1px solid gray;";
2.3 DOM遍历

DOM遍历就是查找元素。
(1)查找父元素     obj.parentNode;

oTd[i].onclick = function()
{
    var oParent = this.parentNode;    #this表示当前对象/元素
	oParent.style.color="white"; 
}

(2)查找子元素
childNodes、firstChild、lastChild(不常用)
children、firstElementChild、lastElementChild(常用)

childNodes获取的是所有的子节点。注意,这个子节点是包括元素节点以及文本节点的。而children获取的是所有的元素节点,不包括文本节点。

DOCTYPE  html>
<html>
<head>
	<meta charset="utf-8">
	<title>title>
	<script>
		window.onload = function()
		{
		var oUl = document.getElementById("list");
		var chirldNodesLen = oUl.childNodes.length; 
		var childrenLen =  oUl.children.length;
		
   		alert("childNodes的长度为:" + childNodesLen + "\n" + "children的长度为:” + childrenLen)
   		}
   script>
   <body>
   		<ul id="list">
   			<li>HTMLli>
   			<li>CSSli>
   			<li>Javasriptli>
   		ul>
   body>
   html>

    childNodes包括3个子元素节点和4个子文本节点。每一个li元素都处于不同行,每一个换行符都是一个空白节点,JavaScript会把这些空白节点当成文本节点来处理.
    因此, children.length获取的是元素节点的长度,返回结果为3,childNodes.length获取的是子节点的长度,返回结果是7.

oUl.removeChild(oUl.lastElementChild);  #删除元素节点
oUl.removeChild(oUl.lastChild);  #删除节点,空白文本节点或元素节点

(3)查找兄弟元素
previousSibling、nextSibling(不常用)
previousElementSibling、nextElementSibling(常用)

#查找第二个子元素的前面一个兄弟元素节点
var preElement = oUl.children[2].previousElementsSibling;  
 #删除该元素节点
oUl.removeChild(preElement); 
2.4 innerHTML和innerText

innerHTML属性很方便地获取和设置一个元素的“内部元素”
innerText属性获取和设置一个元素的“内部文本”。

DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Documenttitle>
   <script>
       window.onload = function()
       {
           document.body.innerHTML = '' ;
       }
   script>
head>
<body>
body>
html>

innerHTML获取的是元素内部所有的内容,而innerText获取的仅仅是文本内容

3 事件基础

(1)鼠标事件
(2)键盘事件
(3)表单事件
(4)编辑事件
(5)页面事件

3.1 事件的调用方式 在script标签中调用在元素中调用
DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Documenttitle>
   <script>
       function alertMet()
       {
           alert("知之为知之,不知为不知,是知也");
       }
   script>
head>
<body>
   <input type="button" onclick="alertMet()" value="d出">
body>
html>
#或直接写为:
<input type="button" onclick="alert('知之为知之,不知为不知,是知也')" value="d出">
3.2 鼠标事件

我们可以为任何元素添加鼠标单击事件!

3.3 键盘事件


案例:统计输入字符的长度
实现原理:每输入一个字符,我们都需要敲击一下键盘;每次输入完成,也就是松开键盘时,都会触发一次onkeyup事件此时计算字符串的长度。

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
    <script>
        window.onload = function(){
            var oTxt = document.getElementById("txt");
            var oNum = document.getElementById("num");

            oTxt.onkeyup = function()
            {
                var str = oTxt.value;
                oNum.innerHTML = str.length;
            };

        }
    script>
head>
<body>
    <input type="text" id="txt"/>
    <div>字符串长度为:<span id="num">0span>div>
body>
html>
3.4 表单事件

并不是所有的HTML元素都有焦点事件,具有“获取焦点”和“失去焦点”特点的元素只有两种。
▶ 表单元素(单选框、复选框、单行文本框、多行文本框、下拉列表)。
▶ 超链接。
判断一个元素是否具有焦点很简单,我们打开一个页面后按【Tab】键,能够选中的就是具有焦点特性的元素。

3.4.1 onfocus 和 onblur属性

案例:单行文本框搜索框,在文本框中没有输入值的时候,当失去焦点的时候,提示文字就会出现。当有输入文本内容时,获得焦点时,文本框的值为保留的输入值。

DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>title>
    <script>
        window.onload = function(){
            var oSearch = document.getElementById("search");
            var oBtn = document.getElementById("btn");

            // 获取焦点
            oSearch.onfocus = function() {
                if(this.value =="百度一下,你就知道") 
                {
                    this.value = "";
                }
            
            };

            // 失去焦点
            oSearch.onblur = function(){
                if(this.value == "")
                {
                    this.value = "百度一下,你就知道"
                }
            };
        }
    script>
head>
<body>
    <input type="text" id="search" value="百度一下,你就知道">
    <input type="button" id="btn" value="搜索">
body>
html>

补充:自动获取焦点的方法: obj.focus()

3.4.2 onselect 属性

文本框内容设置:
单行文本框的内容:在value属性中设置
多行文本框内地:在标签中设置
举例:当选择文本框内容时出现提示

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
    <script>
        window.onload = function(){
            var oTxt1 = document.getElementById("txt1");
            var oTxt2 = document.getElementById("txt2");

            oTxt1.onselect = function(){
                alert("你选中了单行文本框的内容");
            };
            oTxt2.onselect = function(){
                alert("你选中了多行文本框的内容");
            };
        }
    script>
head>
<body>
    <input type="text" id="txt1" value="单行文本框的内容在value属性中设置"><br />
    <textarea  id="txt2" cols="20" rows="5">多行文本框的内容是在标签中设置的,这一点一定要记住textarea>
body>
html>

需要区别的是,select()方法,是一个方法,onselect是一个属性,它是用于事件 *** 作的。select()方法表示,点击文本框时,自动帮我们把文本框内的内容全选中。语法: obj.select();

3.4.3 onchange属性 具有多个选项的表单元素

(1)单选框选择某一项时触发
(2)复选框选择某一项时触发
(3)下拉列表项选择某一项时触发
案例1:

DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
    <script>
        window.onload = function(){
            // getElementsByName获取的是一个类数组,要用for循环遍历
            var oFruit = document.getElementsByName("fruit");
            var oP = document.getElementById("content");

            for (var i=0; i<oFruit.length;i++)
            {
                oFruit[i].onchange = function()
                {
                    if(this.checked)
                    {
                        oP.innerHTML = "你选择的是:" + this.value
                    }
                };
            }
        }
    script>
head>
<body>
    <div>
        <label><input type="radio" name="fruit" value="苹果"/>label>
        <label><input type="radio" name="fruit" value="香蕉" />label>
        <label><input type="radio" name="fruit" value="西瓜">label>
    div>
    <div>
        <p id="content">你选择的是:p>
    div>
body>
html>

复选框

DOCTYPE html>
<html>
<head>
    <title>title>
    <meta charset="utf-8" />
    <script>
        window.onload = function () {
            var oSelectAll = document.getElementById("selectAll");
            var oFruit = document.getElementsByName("fruit");

            oSelectAll.onchange = function () {
                //如果选中,即this.checked返回true
                if (this.checked) {
                    for (var i = 0; i < oFruit.length; i++) {
                        oFruit[i].checked = true;
                    }
                } else {
                    for (var i = 0; i < oFruit.length; i++) {
                        oFruit[i].checked = false;
                    }
                }
            };
        }
    script>
head>
<body>
    <div>
        <p><label><input id="selectAll" type="checkbox"/>全选/反选:label>p>
        <label><input type="checkbox" name="fruit" value="苹果" />苹果label>
        <label><input type="checkbox" name="fruit" value="香蕉" />香蕉label>
        <label><input type="checkbox" name="fruit" value="西瓜" />西瓜label>
    div>
body>
html>

下拉列表

DOCTYPE html>
<html>
<head>
    <title>title>
    <meta charset="utf-8" />
    <script>
        window.onload = function () {
            var oList = document.getElementById("list");

            oList.onchange = function () {
                var link = this.options[this.selectedIndex].value;
                window.open(link);
            };
        }
    script>
head>
<body>
    <select id="list">
        <option value="https://music.163.com">网易云option>
        <option value="https://www.epubit.com">异步社区option>
        <option value="http://www.ptpress.com.cn">人邮官网option>
    select>
body>
html>
3.5 编辑事件 防止复制 oncopy 防止页面内容被复制
onselectstart 防止页面内容被选取
oncontextmenu 禁止鼠标右键
3.6 页面事件 onload: 表示文档加载完成后再执行的一个事件
onbeforeunload:离开页面之前触发的一个事件
4 事件进阶 4.1事件监听器

在Javascript中,如果要给元素添加一个事件,可采用以下两种方式。
▶ 事件处理器 obj.onclick = function () {……};
▶ 事件监听器 obj.addEventListener(“click”, function () {……);}, false);
前面学的给元素添加事件的方式就是时间处理器的方式,这种方式不能为一个元素添加多个相同的事件。为一个元素添加多个相同的事件,需要用事件监听器的方式。

事件监听器”,指的是使用addEventListener()方法为一个元素添加事件,我们又称之为“绑定事件”
obj.addEventListener(type , fn , false)

obj是一个DOM对象,指的是使用getElementById()、getElementsByTagName()等方法获取的元素节点。type是一个字符串,指的是事件类型。如单击事件用click,鼠标移入用mouseover等。一定要注意,这个事件类型是不需要加上“on”前缀的。fn是一个函数名,或是一个匿名函数。false表示事件冒泡阶段调用。fn的写法:
DOCTYPE html>
<html>
<head>
    <title>title>
    <meta charset="utf-8" />
    <script>
        window.onload = function () {
            var oBtn = document.getElementById("btn");
           
            oBtn.addEventListener("click", alertMes, false);
			#function为具体函数如alertMes,需要定义一下
            function alertMes() {
                alert("JavaScript");
            }
        }
    script>
head>
<body>
    <input id="btn" type="button" value="按钮"/>
body>
html>

解绑事件:
obj.removeEventListener(type , fn , false);

DOCTYPE html>
<html>
<head>
    <title>title>
    <meta charset="utf-8" />
    <script>
        window.onload = function () {
            var oP = document.getElementById("content");
            var oBtn = document.getElementById("btn");

            //为p添加事件
            oP.addEventListener("click", changeColor, false);

            //点击按钮后,为p解除事件
            oBtn.addEventListener("click", function () {
                oP.removeEventListener("click", changeColor, false);
            }, false);

            function changeColor() {
                this.style.color = "hotpink";
            }
        }
    script>
head>
<body>
    <p id="content">绿叶学习网p>
    <input id="btn" type="button" value="解除" />
body>
html>

removeEventListener()方法只能解除“事件监听器”添加的事件,不能解除“事件处理器”添加的事件。如果想要解除“事件处理器”添加的事件,需要借助“obj.事件名 = null;”来实现;

4.2 this对象

哪个DOM对象(元素节点)调用了this所在的函数,那么this指向的就是哪个DOM对象
记住,在事件函数中,想要使用当前元素节点,我们尽量使用 this 来代替oBtn、oLi[i] 等等这种DOM对象的写法。

4.3 even对象

当一个事件发生的时候,这个事件有关的详细信息都会临时保存到一个指定的地方,这个地方就是event对象。每一个事件,都有一个对应的event对象.

5. window对象 在JavaScript中,一个浏览器窗口就是一个window对象。一个窗口就是一个window对象,这个窗口里面的HTML文档就是一个document对象,document对象是window对象的子对象。window对象及其子对象:window对象及下面这些location、navigator等子对象,由于都是用于 *** 作浏览器窗口的,所以我们又称之为“BOM”,也就是Browser Object Module(浏览器对象模型)window对象的常用方法:对于window对象,无论是它的属性,还是方法,都可以省略window前缀。如window.alert()可以简写为alert(),window.open()可以简写为open(),甚至window.document.getElementById()可以简写为document.getElementById(),
5.1 窗口 *** 作

在JavaScript中,窗口常见的 *** 作有两种:一种是“打开窗口”,另一种是“关闭窗口”.打开窗口和关闭窗口,在实际开发中经常用到。

5.1.1 打开窗口 语法: window.open(url, target);说明:url指的是新窗口的地址,如果url为空,则表示打开一个空白窗口。空白窗口很有用,我们可以使用document.write()往空白窗口输出文本,甚至输出一个HTML页面;
        target表示打开方式,它的取值根a标签中target属性的取值是一样的,常用取值有两个:_blank (默认值,表示在新窗口中打开) 和 _self(表示在当前窗口中打开)

举例:打开一个空白窗口:

    DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
    <script>
        window.onload = function(){
            var oBtn = document.getElementById("btn");
            oBtn.onclick = function(){
                // 打开一个空白窗口,这个 *** 作的意义在于,可以把这个空白窗口赋值给一个变量,
                // 这个变量也是一个window对象,获取该对象,即可对这个页面进行 *** 作。
                var opener = window.open();
                // 新窗口下面有document子对象,借助document.write()方法来输出一个文本
                opener.document.write("这是一个新的窗口");
                // 为新窗口设置样式
                opener.document.body.style.backgroundColor = "red";
            };
        } 

    script>
head>
<body>
    <input type="button" id="btn" value="获取">
body>
html>
5.1.2 关闭窗口 语法: window.close()
该方法不接收任何的参数。
举例:实现打开一个新窗口,然后关闭该新窗口
DOCTYPE html>
<html>
<head>
    <title>title>
    <meta charset="utf-8" />
    <script>
        window.onload = function () {
            var btnOpen = document.getElementById("btn_open");
            var btnClose = document.getElementById("btn_close");
            // 先创建一个空白变量
            var opener = null;

            btnOpen.onclick = function () {
                opener = window.open("http://www.lvyestudy.com");
            };
            btnClose.onclick = function () {
                // 关闭新打开的窗口
                opener.close();
            }
        }
    script>
head>
<body>
    <input id="btn_open" type="button" value="打开新窗口" />
    <input id="btn_close" type="button" value="关闭新窗口" />
body>
html>
5.2 对话框

JavaScript中,对话框有3种:

alert() 只用于提示文字,记住一点:在alert()中实现文本换行,用的是\n
 alert("HTML\nCSS\nJavaScript");
confirm(“提示文字”) 不仅提示文字,还提供确认。
DOCTYPE html>
<html>
<head>
    <title>title>
    <meta charset="utf-8" />
    <script>
        window.onload = function () {
            var oBtn = document.getElementById("btn");

            oBtn.onclick = function () {
                if (confirm("确定要跳转到绿叶首页?")) {
                    window.location.href = "http://www.lvyestudy.com";
                } else {
                    document.write("你取消了跳转");
                }
            };
        }
    script>
head>
<body>
    <input id="btn" type="button" value="回到首页"/>
body>
html>
prompt(“提示文字”) 不仅会提示文字,还会返回一个字符串
DOCTYPE html>
<html>
<head>
    <title>title>
    <meta charset="utf-8" />
    <script>
        window.onload = function () {
            var oBtn = document.getElementById("btn");

            oBtn.onclick = function () {
                var name = prompt("请输入你的名字");
                document.write("欢迎来到" + name + "");
            };
        }
    script>
head>
<body>
    <input id="btn" type="button" value="按钮"/>
body>
html>
5.3 定时器

指的是每隔一段时间就执行一次代码。
▶ setTimeout()和clearTimeout()。
在JavaScript中,我们可以使用setTimeout()方法来“一次性”地调用函数,并且可以使用clearTimeout()来取消执行setTimeout()。
setTimeout(code, time);
参数code可以是一段代码,可以是一个函数,也可以是一个函数名。
参数time是时间,单位为毫秒,表示要过多长时间才执行code中的代码。

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Documenttitle>
    <script>
        window.onload = function()
        {
            // 第一种:第一个参数是一段代码
            setTimeout('alert("你已经看了2秒钟了")', 2000);

            // 第二种:第一个参数是一个函数
            setTimeout(function(){
                alert("你已经看了2秒钟了")
            }, 2000);

            // 第三种:第一个参数是一个函数名
            setTimeout(alertMet, 200);
            // 定义一个函数,在函数内部d出一个对话框
            function alertMet()
            {
                alert("你已经看了2秒钟了")
            }
        }
    script>
head>
<body>
    <p>2秒后提示p>
body>
html>

▶** setInterval和clearInterval()。**
使用setInterval()方法来“重复性”地调用函数,并且可以使用clearInterval()来取消执行setInterval()
setInterval(code, time);
setInterval()跟setTimeout()语法是一样的,唯一不同的是setTimeout()只执行一次,而setInterval()可以重复执行无数次

5.4 location对象 *** 作当前页面地址(URL)

5.5 navigator对象 获取浏览器的详细信息 6. document对象

document对象其实是window对象下的一个子对象,它 *** 作的是HTML文档里所有的内容.
document是浏览器为每个窗口内的HTML页面创建的对象。通过document对象,我们可以 *** 作页面的元素,这些 *** 作又被统称为“DOM(文档对象模型)”.
由于window对象是包括document对象的,所以我们可以“简单”地把BOM和DOM的关系理解成BOM包含DOM

6.1 document对象常用属性


document.forms、document.images、document.links这3个分别等价于下面3个,所以我们一般用document.getElementsByTagName来获取就行了,不需要记忆。

document.URL 获取页面的当前地址
var url = document.URL;
document.write(url);
document.referrer 获取用户在访问当前页面之前所在页面的地址 6.2 document常用的方法

document.write()不仅可以输出文本,还可以输出标签。
document.write()都是在body标签内输出内容的。

document.writeln("js")  等同于  document.write("js\n");

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1296943.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-10
下一篇2022-06-10

发表评论

登录后才能评论

评论列表(0条)

    保存