使用 XML 時儘量避免使用的技術

roc_guo發表於2022-01-02

使用 XML 時儘量避免使用的技術使用 XML 時儘量避免使用的技術

Internet Explorer - XML 資料島

它是什麼?XML 資料島是嵌入到 HTML 頁面中的 XML 資料。

為什麼要避免使用它?XML 資料島只在 Internet Explorer 瀏覽器中有效。

用什麼代替它?您應當在 HTML 中使用 JavaScript 和 XML DOM 來解析並顯示 XML。

如需更多有關 JavaScript 和 XML DOM 的資訊,請訪問我們的 XML DOM 教程。

XML 資料島例項

本例使用 XML 文件 "cd_catalog.xml"。

把 XML 文件繫結到 HTML 文件中的一個 <xml> 標籤。id 屬性定義資料島的識別符號,而 src 屬性指向 XML 檔案:

例項

本例項只適用於 IE 瀏覽器

<html>
<body>
<xml id="cdcat" src="cd_catalog.xml"></xml>
<table border="1" datasrc="#cdcat">
<tr>
<td><span datafld="ARTIST"></span></td>
<td><span datafld="TITLE"></span></td>
</tr>
</table>
</body>
</html>

<table> 標籤的 datasrc 屬性把 HTML 表格繫結到 XML 資料島。

<span> 標籤允許 datafld 屬性引用要顯示的 XML 元素。在這個例項中,要引用的是 "ARTIST" 和 "TITLE"。當讀取 XML 時,會為每個 <CD> 元素建立相應的表格行。

Internet Explorer - 行為

它是什麼?Internet Explorer 5 引入了行為。行為是透過使用 CSS 樣式向 XML (或 HTML )元素新增行為的一種方法。

為什麼要避免使用它?只有 Internet Explorer 支援 behavior 屬性。

使用什麼代替它?使用 JavaScript 和 XML DOM(或 HTML DOM)來代替它。

例項 1 - 滑鼠懸停突出

下面的 HTML 檔案中的 <style>元素為 <h1>元素定義了一個行為:

<html>
<head>
<style type="text/css">
h1 { behavior: url(behave.htc) }
</style>
</head>
<body>
<h1>Mouse over me!!!</h1>
</body>
</html>

下面顯示的是 XML 文件 "behave.htc"(該檔案包含了一段 JavaScript 和針對元素的事件控制程式碼):

<attach for="element" event="onmouseover" handler="hig_lite" />
<attach for="element" event="onmouseout" handler="low_lite" />
<script>
function hig_lite()
{
element.style.color='red';
}
function low_lite()
{
element.style.color='blue';
}
</script>

例項 2 - 打字機模擬

下面的 HTML 檔案中的 <style> 元素為 id 為 "typing" 的元素定義了一個行為:

<html>
<head>
<style type="text/css">
#typing
{
behavior:url(typing.htc);
font-family:'courier new';
}
</style>
</head>
<body>
<span id="typing" speed="100">IE5 introduced DHTML behaviors.
Behaviors are a way to add DHTML functionality to HTML elements
with the ease of CSS.<br /><br />How do behaviors work?<br />
By using XML we can link behaviors to any element in a web page
and manipulate that element.</p>v
</span>
</body>
</html>

下面顯示的是 XML 文件 "typing.htc":

<attach for="window" event="onload" handler="beginTyping" />
<method name="type" />
<script>
var i,text1,text2,textLength,t;
function beginTyping()
{
i=0;
text1=element.innerText;
textLength=text1.length;
element.innerText="";
text2="";
t=window.setInterval(element.id+".type()",speed);
}
function type()
{
text2=text2+text1.substring(i,i+1);
element.innerText=text2;
i=i+1;
if (i==textLength)
  {
  clearInterval(t);
  }
}
</script>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2850415/,如需轉載,請註明出處,否則將追究法律責任。

相關文章