<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Domety &#187; html</title>
	<atom:link href="http://domety.com/archives/tag/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://domety.com</link>
	<description>分享软件、互联网应用技巧以及开发技能</description>
	<lastBuildDate>Fri, 03 Feb 2012 14:02:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTML DOM实战——查找指定链接</title>
		<link>http://domety.com/archives/239/</link>
		<comments>http://domety.com/archives/239/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 04:39:02 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://domety.com/?p=239</guid>
		<description><![CDATA[今天又给页面添加了一些快捷键，主要是想加深一下对DOM的了解。到目前为止，本站支持以下快捷键操作

在首页或者分类列表页面，按数字0键直接进入第一篇文章，1进入第二篇文章，以次类推。
日志内容页面，按←或p键跳转到上一页，按→或N键跳转到下一页

我的处理方式是响应按键事件的时候，查找对应的链接地址，然后跳转。这个处理过程根据页面文档的结构不同而不同，不过思想是一样的。以本站的首页为例，日志标题列表的结构如下：
&#60;div id="posts"&#62;
&#60;h2&#62;&#60;a href="第一篇日志链接"&#62;第一篇日志标题&#60;/a&#62;&#60;/h2&#62;
&#60;h2&#62;&#60;a href="第二篇日志链接"&#62;第二篇日志标题&#60;/a&#62;&#60;/h2&#62;
......
&#60;h2&#62;&#60;a href="第十篇日志链接"&#62;第十篇日志标题&#60;/a&#62;&#60;/h2&#62;
&#60;/div&#62;
通过对HTML DOM模型的理解，获取连接地址的方法如下：
var elems = document.getElementById("posts").getElementsByTagName("h2");
var elem = elems[i].childNodes[0];
if(elem){
var lin = elem.href;
window.location.assign(lin);
}
其中i的值为0~9,由按键决定。这里我们用到了document对象以及getElementById、getElementByTagName方法，还有childNodes和href属性。elems保存Posts下的所有h2元素集合，然后再通过childNodes属性来得到a标签元素，也就是一个Anchor对象，其href属性就是我们要查找的链接地址。最后通过window.location的assign方法，重新加载页面。如果要在新窗口中打开页面的话，请使用window.open()方法。
查找上一篇文章和下一篇文章链接的方法是一样的，主要分析页面文档的结构。
目前对DOM模型的操作还很生疏，更深层次的东西暂时还无法和大家分享，我会在第一时间把实战经验分享给大家，谢谢关注。
]]></description>
			<content:encoded><![CDATA[<p>今天又给页面添加了一些快捷键，主要是想加深一下对DOM的了解。到目前为止，本站支持以下快捷键操作</p>
<ul>
<li>在首页或者分类列表页面，按数字0键直接进入第一篇文章，1进入第二篇文章，以次类推。</li>
<li>日志内容页面，按←或p键跳转到上一页，按→或N键跳转到下一页</li>
</ul>
<p>我的处理方式是响应按键事件的时候，查找对应的链接地址，然后跳转。这个处理过程根据页面文档的结构不同而不同，不过思想是一样的。以本站的首页为例，日志标题列表的结构如下：<span id="more-239"></span></p>
<pre name="code" class="html">&lt;div id="posts"&gt;
&lt;h2&gt;&lt;a href="第一篇日志链接"&gt;第一篇日志标题&lt;/a&gt;&lt;/h2&gt;
&lt;h2&gt;&lt;a href="第二篇日志链接"&gt;第二篇日志标题&lt;/a&gt;&lt;/h2&gt;
......
&lt;h2&gt;&lt;a href="第十篇日志链接"&gt;第十篇日志标题&lt;/a&gt;&lt;/h2&gt;
&lt;/div&gt;</pre>
<p>通过对<a href="http://domety.com/archives/238/">HTML DOM</a>模型的理解，获取连接地址的方法如下：</p>
<pre name="code" class="js">var elems = document.getElementById("posts").getElementsByTagName("h2");
var elem = elems[i].childNodes[0];
if(elem){
var lin = elem.href;
window.location.assign(lin);
}</pre>
<p>其中i的值为0~9,由按键决定。这里我们用到了document对象以及getElementById、getElementByTagName方法，还有childNodes和href属性。elems保存Posts下的所有h2元素集合，然后再通过childNodes属性来得到a标签元素，也就是一个Anchor对象，其href属性就是我们要查找的链接地址。最后通过window.location的assign方法，重新加载页面。如果要在新窗口中打开页面的话，请使用window.open()方法。</p>
<p>查找上一篇文章和下一篇文章链接的方法是一样的，主要分析页面文档的结构。</p>
<p>目前对DOM模型的操作还很生疏，更深层次的东西暂时还无法和大家分享，我会在第一时间把实战经验分享给大家，谢谢关注。</p>
]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/239/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML DOM 模型</title>
		<link>http://domety.com/archives/238/</link>
		<comments>http://domety.com/archives/238/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 09:15:46 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://domety.com/?p=238</guid>
		<description><![CDATA[本文收集整理自http://w3schools.com,简单的介绍一下HTML DOM模型。
HTML DOM模型可以用下面的html tree进行概括：

上图中的每一个方框都代表一个节点(Node)。如果你想动态的更改页面内容，只需要更改相应的节点即可。如果你打开任何一个网站，查看其源代码，会发现这个模型无处不在。
下面是节点之间的关系图

&#60;html&#62;节点是一个页面的根节点，当然你可以把上图中的节点替换成其它节点，也可以找到类似的关系。通过firstChild、lastChild、nextsibling、previousSibling、childNodes、parentNode等节点属性，可以遍历整个页面文档。
常用的节点属性和方法
我们假设x是一个一个节点对象，下面是一些常用的属性：

x.innerHTML —— 可以获取或更改x的文本内容
x.nodeName —— x的节点名称，只读，不可改写。如果x是HTML元素，返回的就是元素名(如p,h1,a等)，如果x是HTML标签的属性，返回的就是属性名(如href、title等)。
x.nodeValue —— 节点值。如果x是HTML元素,nodeValue无意义。如果果x是HTML标签的属性，则表示属性值。如果x是文本节点(Text)，则表示文本的内容。
x.parentNode —— x的父节点
x.childNodes —— x 的子节点集合
x.attributes —— x的属性集合

另外还有一个nodeType属性，表示节点类型：



Element type
NodeType


Element
1


Attribute
2


Text
3


Comment
8


Document
9



下面是一些常用的方法：

x.getElementById(id) &#8211; 根据元素id获取节点对象
x.getElementsByTagName(name) &#8211; 根据标签名获取所有元素的集合
x.appendChild(node) &#8211; 给x插入一个子节点
x.removeChild(node) &#8211; 从x中删除一个子节点

最后再了解一下HTML DOM中的事件
页面中的每一个元素都有触发脚本语句或函数的事件。比如我们点击页面中的某个按钮的时候，就触发了相应的&#8221;点击&#8221;事件，如果我们为这个&#8221;click&#8221;事件注册了脚本语句或函数的话，这个时候就会执行注册的脚本语句或函数。
以下列举几个事件触发的例子：

当鼠标点击的时候，触发&#8221;onclick&#8221;
当加载完页面或图片的时候，触发&#8221;onload&#8221;
当鼠标经过指定的区域的时候，触发&#8221;onmouseover&#8221;
当元素获得焦点的时候，触发&#8221;onfocus&#8221;
当按下键盘的时候，触发&#8221;onkeydown&#8221;,&#8221;onkeypress&#8221;,&#8221;onkeyup&#8221;

更多事件请参考http://w3schools.com/jsref/dom_obj_event.asp
]]></description>
			<content:encoded><![CDATA[<p>本文收集整理自http://w3schools.com,简单的介绍一下HTML DOM模型。</p>
<p>HTML DOM模型可以用下面的html tree进行概括：<span id="more-238"></span></p>
<p><img class="alignnone" title="html tree" src="http://i623.domety.com/albums/tt312/baolai5/201004/htmltree.gif" alt="" width="486" height="266" /></p>
<p>上图中的每一个方框都代表一个节点(Node)。如果你想动态的更改页面内容，只需要更改相应的节点即可。如果你打开任何一个网站，查看其源代码，会发现这个模型无处不在。</p>
<p>下面是节点之间的关系图</p>
<p><img class="alignnone" title="navigate" src="http://i623.domety.com/albums/tt312/baolai5/201004/navigate.gif" alt="" width="362" height="255" /></p>
<p>&lt;html&gt;节点是一个页面的根节点，当然你可以把上图中的节点替换成其它节点，也可以找到类似的关系。通过firstChild、lastChild、nextsibling、previousSibling、childNodes、parentNode等节点属性，可以遍历整个页面文档。</p>
<h3>常用的节点属性和方法</h3>
<p>我们假设x是一个一个节点对象，下面是一些常用的属性：</p>
<ul>
<li>x.innerHTML —— 可以获取或更改x的文本内容</li>
<li>x.nodeName —— x的节点名称，只读，不可改写。如果x是HTML元素，返回的就是元素名(如p,h1,a等)，如果x是HTML标签的属性，返回的就是属性名(如href、title等)。</li>
<li>x.nodeValue —— 节点值。如果x是HTML元素,nodeValue无意义。如果果x是HTML标签的属性，则表示属性值。如果x是文本节点(Text)，则表示文本的内容。</li>
<li>x.parentNode —— x的父节点</li>
<li>x.childNodes —— x 的子节点集合</li>
<li>x.attributes —— x的属性集合</li>
</ul>
<p>另外还有一个nodeType属性，表示节点类型：</p>
<table style="height: 102px;" border="1" cellspacing="0" cellpadding="0" width="368">
<tbody>
<tr>
<th width="85%" align="left" valign="top">Element type</th>
<th width="15%" align="left" valign="top">NodeType</th>
</tr>
<tr>
<td valign="top">Element</td>
<td valign="top">1</td>
</tr>
<tr>
<td valign="top">Attribute</td>
<td valign="top">2</td>
</tr>
<tr>
<td valign="top">Text</td>
<td valign="top">3</td>
</tr>
<tr>
<td valign="top">Comment</td>
<td valign="top">8</td>
</tr>
<tr>
<td valign="top">Document</td>
<td valign="top">9</td>
</tr>
</tbody>
</table>
<p>下面是一些常用的方法：</p>
<ul>
<li>x.getElementById(<em>id</em>) &#8211; 根据元素id获取节点对象</li>
<li>x.getElementsByTagName(<em>name</em>) &#8211; 根据标签名获取所有元素的集合</li>
<li>x.appendChild(<em>node</em>) &#8211; 给x插入一个子节点</li>
<li>x.removeChild(<em>node</em>) &#8211; 从x中删除一个子节点</li>
</ul>
<h3>最后再了解一下HTML DOM中的事件</h3>
<p>页面中的每一个元素都有触发脚本语句或函数的事件。比如我们点击页面中的某个按钮的时候，就触发了相应的&#8221;点击&#8221;事件，如果我们为这个&#8221;click&#8221;事件注册了脚本语句或函数的话，这个时候就会执行注册的脚本语句或函数。</p>
<p>以下列举几个事件触发的例子：</p>
<ul>
<li>当鼠标点击的时候，触发&#8221;onclick&#8221;</li>
<li>当加载完页面或图片的时候，触发&#8221;onload&#8221;</li>
<li>当鼠标经过指定的区域的时候，触发&#8221;onmouseover&#8221;</li>
<li>当元素获得焦点的时候，触发&#8221;onfocus&#8221;</li>
<li>当按下键盘的时候，触发&#8221;onkeydown&#8221;,&#8221;onkeypress&#8221;,&#8221;onkeyup&#8221;</li>
</ul>
<p>更多事件请参考<a href="http://w3schools.com/jsref/dom_obj_event.asp">http://w3schools.com/jsref/dom_obj_event.asp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/238/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>为网站添加网址图标favicon.ico</title>
		<link>http://domety.com/archives/135/</link>
		<comments>http://domety.com/archives/135/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 09:01:01 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[favicon]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://domety.com/?p=135</guid>
		<description><![CDATA[今天终于有时间把domety的图标设计好，并显示在了网站地址前面。如果你还不知道怎么把自己的图标放到网站上，今天DDBug就和你分享一下实现方法。

制作图标
首先是准备一张ico图标，你可以从网上搜索，不过最好是按照自己的想法制作一个自己的图标，如果你不会作图，可以找身边的朋友帮你做个。我的做法是先用photoshop做一个48*48的png格式的图标，然后再转换成ico格式。目前已经有很多网站提供在线转换ico图标的服务，比如这个网站http://tools.dynamicdrive.com/favicon/，它转换的效果不错，而且还支持同时包含32*32和48*48大小的图标

转换后

然后把图标下载到本地
 
上传图标
然后把图标上传到网站的根目录（图标文件的文件名一定要是favicon.ico）,这时候，一般来说你的图标应该可以显出效果了。可能你不想把favicon放在网站的根目录下，而是其它文件夹里(比如images目录下)，这样也是可以的，不过你需要在每个网页的头部&#60;head&#62;&#60;/head&#62;之间添加一句代码
&#60;link rel="shortcut icon" href＝"你的域名/images/favicon.ico" /&#62;
以wordpress为例，比如我把favicon.ico文件放在了主题模板的目录下面，那么我就在网页的头部添加了如下代码：
&#60;link rel="shortcut icon" href="&#60;?php bloginfo('template_directory'); ?&#62;/favicon.ico" /&#62;
到这里其实我们的工作已经基本完成了，接下来就打开你的网站，测试一下有没有效果
如果你在打开你的网站的时候，没有在地址前面看到你的favicon图标，你可以先到下面这个网站测试一下
http://www.html-kit.com/favicon/validator/

你可以根据测试结果查找问题出在了哪里。如果在这里测试通过，都没有问题，那么就是浏览器保存的临时文件引起的。这时候其实你的图标已经生效了，只是你自己看不到而已。你可以把你的网址发给你的朋友，让你的朋友看一下有没有图标。或者删除你电脑中的网页临时文件，重新打开你的网站，一般来说就能看到效果了。这一步的处理方法由于浏览器的不同而不同。
]]></description>
			<content:encoded><![CDATA[<p>今天终于有时间把domety的图标设计好，并显示在了网站地址前面。如果你还不知道怎么把自己的图标放到网站上，今天DDBug就和你分享一下实现方法。</p>
<p><span id="more-135"></span></p>
<h3>制作图标</h3>
<p>首先是准备一张ico图标，你可以从网上搜索，不过最好是按照自己的想法制作一个自己的图标，如果你不会作图，可以找身边的朋友帮你做个。我的做法是先用photoshop做一个48*48的png格式的图标，然后再转换成ico格式。目前已经有很多网站提供在线转换ico图标的服务，比如这个网站<a href="http://tools.dynamicdrive.com/favicon/">http://tools.dynamicdrive.com/favicon/</a>，它转换的效果不错，而且还支持同时包含32*32和48*48大小的图标</p>
<p><img class="alignnone" title="转换ico" src="http://i623.domety.com/albums/tt312/baolai5/200911/other_001.png" alt="" width="480" height="103" /></p>
<p>转换后</p>
<p><img class="alignnone" title="转换后" src="http://i623.domety.com/albums/tt312/baolai5/200911/other_002.png" alt="" width="480" height="242" /></p>
<p>然后把图标下载到本地</p>
<p> </p>
<h3>上传图标</h3>
<p>然后把图标上传到网站的根目录（图标文件的文件名一定要是favicon.ico）,这时候，一般来说你的图标应该可以显出效果了。可能你不想把favicon放在网站的根目录下，而是其它文件夹里(比如images目录下)，这样也是可以的，不过你需要在每个网页的头部&lt;head&gt;&lt;/head&gt;之间添加一句代码</p>
<pre>&lt;link rel="shortcut icon" href＝"你的域名/images/favicon.ico" /&gt;</pre>
<p>以wordpress为例，比如我把favicon.ico文件放在了主题模板的目录下面，那么我就在网页的头部添加了如下代码：</p>
<pre>&lt;link rel="shortcut icon" href="&lt;?php bloginfo('template_directory'); ?&gt;/favicon.ico" /&gt;</pre>
<p>到这里其实我们的工作已经基本完成了，接下来就打开你的网站，测试一下有没有效果</p>
<p>如果你在打开你的网站的时候，没有在地址前面看到你的favicon图标，你可以先到下面这个网站测试一下</p>
<p><a href="http://www.html-kit.com/favicon/validator/">http://www.html-kit.com/favicon/validator/</a></p>
<p><img class="alignnone" title="测试favicon.ico" src="http://i623.domety.com/albums/tt312/baolai5/200911/other_003.png" alt="" width="480" height="551" /></p>
<p>你可以根据测试结果查找问题出在了哪里。如果在这里测试通过，都没有问题，那么就是浏览器保存的临时文件引起的。这时候其实你的图标已经生效了，只是你自己看不到而已。你可以把你的网址发给你的朋友，让你的朋友看一下有没有图标。或者删除你电脑中的网页临时文件，重新打开你的网站，一般来说就能看到效果了。这一步的处理方法由于浏览器的不同而不同。</p>
]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/135/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

