VLM基礎
VML相當於IE裡面的畫筆,能實現你所想要的圖形,而且結合腳本,可以讓圖形產生動態的效果。VML是微軟1999年9月附帶IE5.0發布的,在我認為, VML其實是Word和HTML結合的產物。可以將Word文檔另外儲存為HTML,其中的文本和圖片可以很容易的轉換,但如果是手繪製的圖形在以往的IE裡面就無法解釋了,如果都轉換成圖形檔案又不太現實。於是微軟把Word裡面的圖形控制項結合到IE裡面,使IE也具備了繪圖功能。
VML的全稱是Vector Markup Language(矢量可標記語言),矢量的圖形,意味著圖形可以任意放大縮小而不損失圖形的質量,這在製作地圖上有很大用途。
VML的元素包括:SHAPE、LINE、POLYLINE、RECT、RoundRect、OVAL、IMAGE、GROUP等,用這些對象,可以在WEB頁面中通過JAVASCRIPT動態生成各種圖形,如:數據圖表、矢量地圖等。
剛開始學習的時候,看了幫助資料之後,覺得通過JAVASCRIPT動態生成各種圖形很容易,但是真正使用的時候,遇到了各種問題,才知道,VML也不是那么好控制。其中遇到的最大的問題是加TEXTBOX文本對象(一般與矩形控制項或者Line控制項結合,用TextBox控制項來做介紹)的時候,文字顯示不出來。
通過自己多次的試驗,終於找到了動態生成TEXTBOX對象的方法,好東西不敢獨享,特總結出來,與大家共勉。代碼如下:
//新建一個VML圓角矩形結點
//aStrLeft:矩形左邊坐標;aStrTop:矩形頂部坐標;aStrWidth:矩形寬度;
//aStrHeight:矩形高度;aStrID:結點ID;aStrText:結點內容;aStrAlt:結點提示;
function createItem (aStrLeft, aStrTop, aStrWidth, aStrHeight, aStrID, aStrText, aStrAlt)
{
var strRoundRect = "<vml:roundrect fillcolor="#EEEEEE">"
+ "</vml:roundrect>";
var strText = "<vml:textbox onselectstart="return false;">"
+ "</vml:textbox>";
var objRoundRect = document.createElement (strRoundRect);
var objText = document.createElement (strText);
objText.innerHTML = aStrText;
objRoundRect.insertBefore (objText);
document.forms[0].insertBefore (objRoundRect);
}
//新建一個Line對象
//aStrSource:Line對象的緣;aStrObject:Line對象的目標;
//(即從哪到哪畫一條直線)
function createLine (aStrSource, aStrObject)
{
var strLine = "<vml:line source="" + aStrSource + "" object="" + aStrObject + "">"
+ "</vml:line>";
var strStroke = "<vml:stroke endarrow="Classic"></vml:stroke>";
var objLine = document.createElement (strLine);
var objStroke = document.createElement (strStroke);
objLine.insertBefore (objStroke);
document.forms[0].insertBefore (objLine);
drawLine ();
}
以上是創建圓角矩形結點(包括文字介紹)與直線對象的兩個比較簡單的方法。
VML安全漏洞
發布日期: 八月 14, 2007
版本: 1.0
摘要:
此安全更新可解決 Windows 上矢量標記語言 (VML) 實施中的秘密報告的漏洞。 如果用戶使用 Internet Explorer 查看特製網頁,此漏洞可能允許遠程執行代碼。 那些帳戶被配置為擁有較少系統用戶許可權的用戶比具有管理用戶許可權的用戶受到的影響要小。
對於受支持版本 Internet Explorer 5.01、Internet Explorer 6 和 Internet Explorer 7,此安全更新等級為“嚴重”。
此安全更新通過加強驗證在 Internet Explorer 中呈現 VML 的請求來消除該漏洞。
建議。 Microsoft 建議用戶立即套用此更新。
受影響的軟體
作業系統 組件 最大安全影響 綜合嚴重程度等級 此更新替代的公告
Internet Explorer 5.01 和 Internet Explorer 6 Service Pack 1
Microsoft Windows 2000 Service Pack 4
Microsoft Internet Explorer 5.01 Service Pack 4
遠程執行代碼
嚴重
MS07-004
Microsoft Windows 2000 Service Pack 4
Microsoft Internet Explorer 6 Service Pack 1
遠程執行代碼
嚴重
MS07-004
Internet Explorer 6
Windows XP Service Pack 2
Microsoft Internet Explorer 6
遠程執行代碼
嚴重
MS07-004
Windows XP Professional x64 Edition 和 Windows XP Professional x64 Edition Service Pack 2
Microsoft Internet Explorer 6
遠程執行代碼
嚴重
MS07-004
Windows Server 2003 Service Pack 1 和 Windows Server 2003 Service Pack 2
Microsoft Internet Explorer 6
遠程執行代碼
嚴重
MS07-004
Windows Server 2003 x64 Edition 和 Windows Server 2003 x64 Edition Service Pack 2
Microsoft Internet Explorer 6
遠程執行代碼
嚴重
MS07-004
Windows Server 2003 SP1(用於基於 Itanium 的系統)以及 Windows Server 2003 SP2(用於基於 Itanium 的系統)
Microsoft Internet Explorer 6
遠程執行代碼
嚴重
MS07-004
Internet Explorer 7
Windows XP Service Pack 2
Windows Internet Explorer 7
遠程執行代碼
嚴重
MS07-004
Windows XP Professional x64 Edition 和 Windows XP Professional x64 Edition Service Pack 2
Windows Internet Explorer 7
遠程執行代碼
嚴重
MS07-004
Windows Server 2003 Service Pack 1 和 Windows Server 2003 Service Pack 2
Windows Internet Explorer 7
遠程執行代碼
嚴重
MS07-004
Windows Server 2003 x64 Edition 和 Windows Server 2003 x64 Edition Service Pack 2
Windows Internet Explorer 7
遠程執行代碼
嚴重
MS07-004
Windows Server 2003 SP1(用於基於 Itanium 的系統)以及 Windows Server 2003 SP2(用於基於 Itanium 的系統)
Windows Internet Explorer 7
遠程執行代碼
嚴重
MS07-004
Windows Vista
Windows Internet Explorer 7
遠程執行代碼
嚴重
無
Windows Vista x64 Edition
Windows Internet Explorer 7
遠程執行代碼
嚴重
無