如何使用JS操作DOM以及如何获取浏览器的高和宽(不同浏览器)

一、什么是DOM:

DOM可以理解为一个访问或操作HTML各种标签的实现标准。

对于一个HTML来说,文档节点Document(看不到的)是它的根节点,对应的对象便是document对象(严格讲是子类HTMLDocument对象)。

换句话说存在一个文档节点Document,然后它有子节点,比如通过document.getElementsByTagName(“html”),得到类型为元素节点的Element html。

二、如何去操作它

对DOM元素进行操作,须先得该元素对象。可以通过 ID 获取元素的对象。

var obj=document.getElementById("id");

得到元素对象之后,即可对DOM元素进行操作了,可以通过:

 对象.style.property=value;  

改变DOM元素的样式,如背景颜色,字体大小,边框等。。。

例子如下:

<p id="aixuexi">我爱学习--喜欢学习,就与大家一起来分享你的经验与技巧。。。。</p>

<script type="text/javascript">

 var aixuexi=document.getElementById("aixuexi");

 aixuexi.style.color="yellowgreen";

 aixuexi.style.backgroundColor="#abcdef";

 aixuexi.style.border="1px solid blue";

</script>

对DOM元素样式的操作。

例如:为div添加className类。

<!DOCTYPE html>

<head>

<meta charset="utf-8" />

<style>

 .aixuexi{

 760px;

 hight:45px;

 border:1px solid green;

 background:#abcdef;

}

</style>

</head>

<body>

<div id="xuexi">我要好好学习JS的知识,努力成为一名牛X的前端工程师。</div>

<script type="text/javascript">

 var xuexi=document.getElementById("xuexi");

xuexi.className="aixuexi";

</script>

</body>

</html>

 三、如何去获取浏览器的宽高:

1.

网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWidth (包括边线的宽)网页可见区域高: document.body.offsetHeight (包括边线的高)网页正文全文宽: document.body.scrollWidth网页正文全文高: document.body.scrollHeight网页被卷去的高: document.body.scrollTop网页被卷去的左: document.body.scrollLeft网页正文部分上: window.screenTop网页正文部分左: window.screenLeft屏幕分辨率的高: window.screen.height屏幕分辨率的宽: window.screen.width屏幕可用工作区高度: window.screen.availHeight屏幕可用工作区宽度: window.screen.availWidth。

2.

$(window).height(); //浏览器当前窗口可视区域高度$(document).height(); //浏览器当前窗口文档的高度$(document.body).height();//浏览器当前窗口文档body的高度$(document.body).outerHeight(true);//浏览器当前窗口文档body的总高度 包括border padding margin$(window).width(); //浏览器当前窗口可视区域宽度$(document).width();//浏览器当前窗口文档对象宽度$(document.body).width();//浏览器当前窗口文档body的宽度$(document.body).outerWidth(true);//浏览器当前窗口文档body的总宽度 包括border padding margin。

3.

IE,FireFox 差异如下: IE6.0、FF1.06+: clientWidth = width + padding clientHeight = height + padding offsetWidth = width + padding + border offsetHeight = height + padding + border IE5.0/5.5: clientWidth = width - border clientHeight = height - border offsetWidth = width offsetHeight = height。

对于绝大部分浏览器使用window.innerWidth即可获取宽度,使用document.documentElement.clientWidth || document.body.clientWidth 为了实现对IE6,7的支持。

高度同上。

 

1
2
3
4
5
6
7
8
9
10
var w=window.innerWidth
  || document.documentElement.clientWidth
  || document.body.clientWidth;
 
  var h=window.innerHeight
  || document.documentElement.clientHeight
  || document.body.clientHeight;
 
  x=document.getElementById("screen_size");
  x.innerHTML="浏览器的内部窗口宽度:" + w + ",高度:" + h + "。"


2.获取屏幕的有效宽高

 

 

1
document.write("屏幕可用尺寸,宽:" + screen.availWidth+",高:"+screen.availHeight);

 

3.location相关(获取web服务器相关信息)

 

 

1
2
3
4
5
document.write("web 主机的域名: "+location.hostname+"<br>");
document.write("当前页面的路径和文件名: "+location.pathname+"<br>");
document.write("web 主机的端口: "+location.port+"<br>");
document.write("所使用的 web 协议: "+location.protocol+"<br>");
document.write("当前页面的url: "+location.href+"<br>");
原文地址:https://www.cnblogs.com/myself-clf/p/5862647.html