华域联盟
  • 资讯
    • 安全资讯
    • 漏洞资讯
    • PDF电子书
  • 安防
    • 安防设备
    • 网络安防
    • 黑客工具
    • 黑客技术
  • 编程
    • .Net
    • 易语言
    • Andriod
    • C/C++
    • HarmonyOS
    • IOS
    • JAVA
    • Visual Basic
  • 数据库
    • Access
    • Mariadb
    • MySQL
    • Oracle
    • Redis
    • SQL Server
  • 网页制作
    • PHP
    • ASP
    • XML/XSLT
    • CSS
    • Dreamweaver
    • HTML
    • HTML5
    • JavaScript
    • Frontpage
  • 脚本
    • 游戏相关
    • 远程脚本
    • 游戏脚本
    • autoit
    • ColdFusion
    • DOS/BAT
    • Erlang
    • Golang
    • hta
    • htc
    • linux shell
    • Lua
    • perl
    • PowerShell
    • Python
    • ruby专题
    • seraphzone
    • VBA
    • vbs
  • 操作系统
    • Linux
    • Mac OS
    • Windows
    • Unix
    • Windows PE
    • 鸿蒙系统
  • 网络
    • 交换机
    • 路由器
    • 防火墙
  • 平面设计
    • 摄影
    • photoshop
      • ps抠图教程
      • PS调色教程
      • 入门实例
      • 合成特效
      • 照片处理
      • 其它综合
    • CorelDraw
    • Fireworks
    • Freehand
    • Illustrator
    • Indesign
    • Painter
  • 站点公告
    • 未分类
    • 分享
    • 纸篮子
登录

html5指南-2.如何操作document metadata

2021-12-19 HTML5 0 0 57 0
  • 详情介绍
  • 常见问题
  • 评论建议

今天的内容是关于如何操作document对象。


1.操作Document metadata
首先我们来看看相关的属性:

characterSet:获取当前document的编码方式,该属性为只读;

charset:获取或者设置当前document的编码方式;

compatMode:获取当前document的兼容模式;

cookie:获取或者设置当前document的cookie对象;

defaultCharset:获取浏览器默认的编码方式;

defaultView:获取当前当前document的window对象;

dir:获取或者设置当前document的文本对齐方式;

domain:获取或者设置当前document的domian值;

implementation:提供所支持的dom特性的信息;

lastModified:获取document最后的修改时间(如果没有最后修改时间,则返回当前时间);

location:提供当前document的url信息;

readyState:返回当前document的状态,该属性是只读属性;

referrer: 返回连接到当前document的document url信息;

title:获取或者设置当前document的title。

来看下面的例子:

复制代码 代码如下:

<!DOCTYPE html>

<html>

<head>

<title>example</title>

</head>

<body>

<script type=”text/javascript”>

document.writeln(‘<pre>’);

document.writeln(‘characterSet:’ + document.characterSet);

document.writeln(‘charset:’ + document.charset);

document.writeln(‘compatMode:’ + document.compatMode);

document.writeln(‘defaultCharset:’ + document.defaultCharset);

document.writeln(‘dir:’ + document.dir);

document.writeln(‘domain:’ + document.domain);

document.writeln(‘lastModified:’ + document.lastModified);

document.writeln(‘referrer:’ + document.referrer);

document.writeln(‘title:’ + document.title);

document.write(‘</pre>’);

</script>

</body>

</html>

结果(不同浏览器显示的结果可能不一样):


2.如何理解兼容模式

compatMode属性告诉你浏览器是如何处理当前document的。有太多不标准的html了,浏览器会试图显示这些页面,即使他们不符合html规范。有些内容依赖于早先浏览器大战时所存在的独特的特性,而这些属性石不符合规范的。compatMode会返回一个或两个值,如下:

CSS1Compat:document符合一个有效的html规范(不一定是html5,验证的html4页面同样返回这个值);

BackCompat:document包含不符合规范的特性,触发了兼容模式。


3.使用Location对象

document.location返回一个Location对象,向你提供细粒度的document的地址信息,同时允许你导航到其他document。

protocol:获取或者设置document url的协议;

host:获取或者设置document url的主机信息;

href:获取或者设置document的地址信息;

hostname:获取或者设置document的主机名;

search:获取或者设置document url查询部分的信息;

hash:获取或者设置document url hash部分的信息;

assign(<url>):导航到一个指定url;

replace(<url>):移除当前document,导航到指定的url;

reload():重新加载当前document;

resolveURL(<url>):将相对路径变为绝对路径。


来看下面的例子:

复制代码 代码如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head>

<title></title>

</head>

<body>

<script type=”text/javascript”>

document.writeln(‘<pre>’);

document.writeln(‘protocol:’ + document.location.protocol);

document.writeln(‘host:’ + document.location.host);

document.writeln(‘hostname:’ + document.location.hostname);

document.writeln(‘port:’ + document.location.port);

document.writeln(‘pathname:’ + document.location.pathname);

document.writeln(‘search:’ + document.location.search);

document.writeln(‘hash:’ + document.location.hash);

document.writeln(‘</pre>’);

</script>

</body>

</html>

结果:


4.读写cookie
通过cookie属性,可以对document的cookie进行新增,修改和读取操作。如下例:

复制代码 代码如下:

<!DOCTYPE HTML>

<html>

<head>

<title>Example</title>

<meta name=”author” content=”Adam Freeman” />

<meta name=”description” content=”A simple example” />

</head>

<body>

<p id=”cookiedata”>

</p>

<button id=”write”>

Add Cookie</button>

<button id=”update”>

Update Cookie</button>

<button id=”clear”>

Clear Cookie</button>

<script type=”text/javascript”>

var cookieCount = 0;

document.getElementById(‘update’).onclick = updateCookie;

document.getElementById(‘write’).onclick = createCookie;

document.getElementById(‘clear’).onclick = clearCookie;

readCookies();

function readCookies() {

document.getElementById(‘cookiedata’).innerHTML = !document.cookie ? ” : document.cookie;

}

function updateCookie() {

document.cookie = ‘cookie_’ + cookieCount + ‘=update_’ + cookieCount;

readCookies();

}

function createCookie() {

cookieCount++;

document.cookie = ‘cookie_’ + cookieCount + ‘=value_’ + cookieCount;

readCookies();

}

function clearCookie() {

var exp = new Date();

exp.setTime(exp.getTime() – 1);

var arrStr = document.cookie.split(“; “);

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

var temp = arrStr[i].split(“=”);

if (temp[0]) {

document.cookie = temp[0] + “=;expires=” + exp.toGMTString();

};

}

cookieCount = 0;

readCookies();

}

</script>

</body>

</html>

结果:


5.理解ReadyState

document.readyState帮助你了解页面加载和解析过程中,页面所处的当前状态。需要记住的一点是,浏览器当遇到script元素时会立即执行,除非你使用defer属性延时脚本的执行。readyState有三个值代表不同的状态。

loading:浏览器正在加载和执行document;

interactive:docuent已经完成解析,但是浏览器正在加载其他外部资源(media,图片等);

complete:页面解析完成,外部资源在家完毕。

在浏览器整个加载和解析的过程中,readyState的值会从loading,interactive和complete逐个改变。当结合readystatechange事件(readyState状态改变时触发)使用,readyState会变得相当有价值。

复制代码 代码如下:

<!DOCTYPE HTML>

<html>

<head>

<title>Example</title>

<meta name=”author” content=”Adam Freeman” />

<meta name=”description” content=”A simple example” />

<script>

document.onreadystatechange = function () {

if (document.readyState == “interactive”) {

document.getElementById(“pressme”).onclick = function () {

document.getElementById(“results”).innerHTML = “Button Pressed”;

}

}

}

</script>

</head>

<body>

<button id=”pressme”>

Press Me</button>

<pre id=”results”></pre>

</body>

</html>

上面的代码使用readystatechange事件实现了延时执行的效果,只有当页面上整个页面解析接触之后readystate的值才会变成interactive,这时再为pressme按钮绑定click事件。这样操作可以确保所需要的html元素都存在,防止错误发生。


6.获取dom属性实现的信息

document.implementation属性帮助你了解浏览器对dom属性的实现情况。该属性返回DOMImplementation对象,对象包含hasFeature方法,你可以通过该方法了解浏览器对某属性的实现情况。

复制代码 代码如下:

<!DOCTYPE HTML>

<html>

<head>

<title>Example</title>

<meta name=”author” content=”Adam Freeman” />

<meta name=”description” content=”A simple example” />

</head>

<body>

<script>

var features = [“Core”, “HTML”, “CSS”, “Selectors-API”];

var levels = [“1.0”, “2.0”, “3.0”];

document.writeln(“<pre>”);

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

document.writeln(“Checking for feature: ” + features[i]);

for (var j = 0; j < levels.length; j++) {

document.write(features[i] + ” Level ” + levels[j] + “: “);

document.writeln(document.implementation.hasFeature(features[i], levels[j]));

}

}

document.write(“</pre>”)

</script>

</body>

</html>

效果:




声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
document metadata
sterben
分享 收藏 点赞(0)
  1. 提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。
  2. 找不到素材资源介绍文章里的示例图片?
    对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
  3. 付款后无法显示下载地址或者无法查看内容?
    如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

评论(0)

提示:请文明发言 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

上一篇
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
下一篇
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法

相关文章

HTML5

canvas实现图片马赛克的示例代码

1. 原生canvas实现用到的API 1) getContext(contex...
4 年前 0 0 50
HTML5

HTML5 图片预加载的示例代码

在HTML5中,我们可以使用drawImage方法在canvas上进行画图操作,...
4 年前 0 0 55
HTML5

详解HTML5中div和section以及article的区别

刚刚开始接触 HTML5 时,对它的标签很不适应,甚至一度有点反感。尤其是对 d...
4 年前 0 0 58
HTML5

HTML5来实现本地文件读取和写入的实现方法

最近有这样一个需求,就是在html页面中有个按钮导出,点击它,将构造一个文档并存...
4 年前 0 0 134

近期文章

  • NGINX 再曝高危漏洞:rewrite 模块存在堆溢出漏洞(CVE-2026-9256)
  • 三六零入选国家数据发展研究院数据安全协同工作组首批成员单位
  • 《新闻联播》报道!全国政协召开专题协商会,周鸿祎建言培养“硅基领导力”新型人才
  • thinking模式深度推理:M3怎么帮你修最难的Bug
  • MonkeyCode实现分布式锁:从Redis到ZooKeeper的完整实战

近期评论

您尚未收到任何评论。
华域联盟

维护网络安全,宣扬安全知识

快速导航

  • 个人中心
  • 标签云
  • 友情链接

关于本站

  • 客服咨询
  • 推广计划

流量统计25-7-18

Flag Counter
Copyright © 2015 华域联盟 - All rights reserved
蒙ICP备2024007863号-1https://beian.mps.gov.cn/蒙公网安备15062202000105号
TrustAsia 安全签章
  • 首页
  • 用户中心
  • QQ客服
  • 首页
  • 分类
  • 我的
华域联盟