/***********************************************
一個JavaScript Title、alt提示(Tips)源碼解讀
代碼注釋:唐國輝
作者博客:http://webflash.cnblogs.com
***********************************************/
//定義getElementById快捷方式
function $(obj)
{
if(typeof(obj)=='object')
{
return obj;
}
else
{
return document.getElementById(obj);
}
}
//定義document.write快捷方式,代替復雜的DOM操作
function $P(str)
{
document.write(str);
}
//腳本錯誤屏蔽
window.onerror=function ()
{
return true;
};
/*
定義變量:
pltsPop(提示內容文字,來自對象的alt或title屬性,不包含HTML)
toolTip(提示內容DOM對象,即后面定義的content變量)
pltsPoptop(上方提示標題DOM對象)
pltsPopbot(下方提示標題DOM對象)
topLeft(左上角提示標題DOM對象)
botLeft(左下方提示標題DOM對象)
topRight(右上角提示標題DOM對象)
botRight(右下方提示標題DOM對象)
*/
var pltsPop,toolTip,pltsPoptop,pltsPopbot,topLeft,botLeft,topRight,botRight;
//設置提示窗口相對提示對象的位置偏移量
var pltsoffsetX=10;
var pltsoffsetY=15;
var pltsTitle="";
//創建一個絕對定位的隱藏圖層
$P('<div id=/"pltsTipLayer/" style="display:none; position:absolute; z-index:10001" mce_style="display:none; position:absolute; z-index:10001"></div>');
//把剛創建的層對象賦值給一個變量,此語句一定要出現在層創建之后
var pltsTipLayer=$('pltsTipLayer');
//定義鼠標移到對象上時處理函數,主要提取alt或title屬性值,并初始化提示框HTML及樣式
function PltsMouseOver(ev)
{
//兼容不同瀏覽器的事件和對象獲取
var Event=window.event||ev;
var o=Event.srcElement||Event.target;
//如果對象alt屬性存在并且不等于空,就把它的值存到dypop屬性,并清空當前alt內容
if(o.alt!=null&&o.alt!="")
{
o.dypop=o.alt;
o.alt="";
}
//如上,對具有title屬性的對象作同樣的判斷和處理,清空title屬性值是讓對象默認的提示效果失效
if(o.title!=null&&o.title!="")
{
o.dypop=o.title;
o.title="";
}
pltsPop=o.dypop;
if(pltsPop!=null&&pltsPop!=""&&typeof(pltsPop)!="undefined")
{
//把上面創建的提示層顯示出來,暫時移到左邊很遠,雖然顯示但用戶看不到
pltsTipLayer.style.left=-1000;
pltsTipLayer.style.display='';
/*
格式化提示信息,把其中的/n換成<br/>,比如像下面這樣定義title值,顯示出來會是作者和性別各一行,因為Tom和Sex之間有/n:
<div title="Author:Tom
Sex:male">Article title...</div>
*/
var Msg=pltsPop.replace(//n/g,"<br/>");
Msg=Msg.replace(//0x13/g,"<br/>");
//定義正則表達式檢查提示內容是否含有類似這樣的內容“{提示標題}”,而且{}和{{}是排除在處的,如果沒有就默認用“簡介”作為提示標題
var re=//{(.[^/{]*)/}/ig;
if(!re.test(Msg))
{
pltsTitle="<label style="/" mce_style="/""color:#000/">簡介</label>";
}
else
{
re=//{(.[^/{]*)/}(.*)/ig;
//提取{}中的內容
pltsTitle=Msg.replace(re,"$1")+" ";
//把{內容},包括{}在內的內容替換為空,得到最終提示正文的內容
re=//{(.[^/{]*)/}/ig;
Msg=Msg.replace(re,"");
}
//定義提示框內容Html與Style,并把獲得的相關內容放到對應變量中
var content="<dl id=/"toolTip/" style="/" mce_style="/""-moz-opacity:0.85;opacity:0.85;FILTER:alpha(opacity=85);padding:2px;background:#fff;/"><dd id=/"pltsPoptop/" class=/"toolTipTitle/" style="/" mce_style="/""line-height:20px;/"><p id=/"topLeft/" class=/"left/"><b><label style="/" mce_style="/""color:#ffffff/">
主站蜘蛛池模板:
万安县|
绥化市|
海宁市|
大城县|
克山县|
全南县|
邵武市|
石河子市|
郑州市|
郓城县|
北流市|
讷河市|
抚顺市|
乌拉特后旗|
衡水市|
雷州市|
闽侯县|
抚宁县|
文昌市|
股票|
禹州市|
湘西|
宝应县|
蓬安县|
武功县|
科技|
禄丰县|
永平县|
泸溪县|
屏边|
丰原市|
奇台县|
竹山县|
新建县|
西畴县|
霍林郭勒市|
桐梓县|
临沧市|
上蔡县|
沂南县|
福州市|