1. 程式人生 > >asp.net中自定義tooltip的顯示

asp.net中自定義tooltip的顯示

本文根據網上的一篇文章加工而成的

1.建一個js檔案(tooltip.js)

//--初始化變數--
var rT=true;//允許影象過渡
var bT=true;//允許影象淡入淡出
var tw=150;//提示框寬度
var endaction=false;//結束動畫

var ns4 = document.layers;
var ns6 = document.getElementById && !document.all;
var ie4 = document.all;
offsetX = 0;
offsetY = 20;
var toolTipSTYLE="";
function initToolTips()
{
  if(ns4||ns6||ie4)
  {
    if(ns4) toolTipSTYLE = document.toolTipLayer;
    else if(ns6) toolTipSTYLE = document.getElementById("toolTipLayer").style;
    else if(ie4) toolTipSTYLE = document.all.toolTipLayer.style;
    if(ns4) document.captureEvents(Event.MOUSEMOVE);
    else
    {
      toolTipSTYLE.visibility = "visible";
      toolTipSTYLE.display = "none";
    }
    document.onmousemove = moveToMouseLoc;
  }
}
function toolTip(msg, fg, bg)
{
  if(toolTip.arguments.length < 1) // hide
  {
    if(ns4)
    {
    toolTipSTYLE.visibility = "hidden";
    }
    else
    {
      //--圖象過渡,淡出處理--
      if (!endaction) {toolTipSTYLE.display = "none";}
      if (rT) document.all("msg1").filters[1].Apply();
      if (bT) document.all("msg1").filters[2].Apply();
      document.all("msg1").filters[0].opacity=0;
      if (rT) document.all("msg1").filters[1].Play();
      if (bT) document.all("msg1").filters[2].Play();
      if (rT){
      if (document.all("msg1").filters[1].status==1 || document.all("msg1").filters[1].status==0){ 
      toolTipSTYLE.display = "none";}
      }
      if (bT){
      if (document.all("msg1").filters[2].status==1 || document.all("msg1").filters[2].status==0){ 
      toolTipSTYLE.display = "none";}
      }
      if (!rT && !bT) toolTipSTYLE.display = "none";
      //----------------------
    }
  }
  else // show
  {
    if(!fg) fg = "#777777";
    if(!bg) bg = "#eeeeee";
    var content =
    '<table id="msg1" name="msg1" border="0" cellspacing="0" cellpadding="1" bgcolor="' + fg + '" class="trans_msg"><td>' +
    '<table border="0" cellspacing="0" cellpadding="3" bgcolor="' + bg +
    '"><td width=' + tw + '><font face="Arial" color="' + fg +
    '" size="-2">' + msg +
    '&nbsp/;</font></td></table></td></table>';

    if(ns4)
    {
      toolTipSTYLE.document.write(content);
      toolTipSTYLE.document.close();
      toolTipSTYLE.visibility = "visible";
    }
    if(ns6)
    {
      document.getElementById("toolTipLayer").innerHTML = content;
      toolTipSTYLE.display='block'
    }
    if(ie4)
    {
      document.all("toolTipLayer").innerHTML=content;
      toolTipSTYLE.display='block'
      //--圖象過渡,淡入處理--
      var cssopaction=document.all("msg1").filters[0].opacity
      document.all("msg1").filters[0].opacity=0;
      if (rT) document.all("msg1").filters[1].Apply();
      if (bT) document.all("msg1").filters[2].Apply();
      document.all("msg1").filters[0].opacity=cssopaction;
      if (rT) document.all("msg1").filters[1].Play();
      if (bT) document.all("msg1").filters[2].Play();
      //----------------------
    }
  }
}
function moveToMouseLoc(e)
{
  if(ns4||ns6)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else
  {
    x = event.x + document.body.scrollLeft;
    y = event.y + document.body.scrollTop;
  }
  toolTipSTYLE.left = x + offsetX;
  toolTipSTYLE.top = y + offsetY;
  return true;
}

2.在aspx頁面檔案中的<head></head>中加入

<script language="javascript" type="text/javascript" src="tooltip.js"></script>
<style  type="text/css">
<!--
.trans_msg
    {
    filter:alpha(opacity=100,enabled=1) revealTrans(duration=.2,transition=1) blendtrans(duration=.2);
    }
-->
</style>

3.<form></form>中加入下面程式碼

<div id="toolTipLayer" style="position:absolute; visibility: hidden"></div>
<script>initToolTips()</script>

4.修改aspx.cs程式碼檔案

Page_Load中

 LinkButton1.Attributes.Add("OnMouseOver", "javascript:toolTip('" + "<B>"+query1 +"</B>"+ "')");

//滑鼠移入觸發的事件toolTip有三個引數,
 LinkButton1.Attributes.Add("OnMouseOut", "javascript:toolTip()");//滑鼠移開事件
  
 順便介紹一下,如何保護js檔案,使客戶端不能下載js檔案

“虛擬目錄”右鍵“屬性”----“配置”----在對映中“新增”-----在可執行檔案中加入

C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll

副檔名:.js

動作:選擇“限制”,輸入GET,HEAD,POST,DEBUG

指令碼引擎和檢查檔案是否存在,勾上

注意:配置IIS後,在web.config中不能出現下面的程式碼

<httpHandlers>
   <add verb="*" path="*.js" type="System.Web.HttpForbiddenHandler"/>
  </httpHandlers>

如果有則js檔案不能訪問。