prompt.js

来自「用php编写的一个BBS 小程序」· JavaScript 代码 · 共 84 行

JS
84
字号
/**
 * prompt.js
 * 08.08.2007
 * vitrification prompt
 */
var startX = 0;
var startY = 0;
var startLeft = 0;
var startTop = 0;
var canSnap = false;
function hintOnMouse(obj, sx, sy) {
    if (!window.document.all || canDrag) return;
    obj.setCapture();
    startLeft = sx;
    startTop = sy;
    startX = window.event.clientX;
    startY = window.event.clientY;
    canSnap = true;
}

function hintMoveLayer(objId) {
    if (canSnap) {
        var obj = window.document.getElementById(objId);
        obj.style.pixelLeft = startLeft + window.event.clientX - startX;
        var eY = window.event.clientY;
        if (eY + window.document.body.scrollTop < 0) {
            obj.style.pixelTop = -obj.parentNode.style.top.substr(0, obj.parentNode.style.top.length-2);
        } else {
            obj.style.pixelTop = startTop + eY - startY;
        }
    }
}

function hintOutMouse(obj) {
    obj.releaseCapture();
    canSnap = false;
}

var sPop = null;
function showpopuptext() {
    var obj = window.event.srcElement;
    if (obj.id == "popLayer") {
        obj.style.visibility = "hidden";
        return;
    }
    if (obj.alt != null && obj.alt != "") {
        obj.pop = obj.alt;
        obj.alt = "";
    }
    if (obj.title != null && obj.title != "") {
        obj.pop = obj.title;
        obj.title = "";
    }
    if (obj.pop != sPop) {
        sPop = obj.pop;
        var pObj = window.document.getElementById("popLayer");
        if (sPop == null || sPop == "") {
            pObj.style.visibility = "hidden";
        } else {
            var sLen = strLength(sPop);//extern function
            pObj.style.width = (sLen < 7 ? "50" : Math.floor(sLen*(sLen>14?(sLen>30?6:7):7.3))) + "px";
            var ofstX = 2;
            var ofstY = 19;
            pObj.style.visibility = "visible";
            pObj.innerHTML = sPop.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\"/g, "&quot;").replace(/ /g, "&nbsp;").replace(/\r\n/g, "<br />").replace(/\n/g, "<br />").replace(/\'/g, "&#39;").replace(/\\/g, "&#92;");
            var cWidth = window.document.body.clientWidth + window.document.body.scrollLeft;
            var tabWidth = parseInt(pObj.style.width.substr(0, pObj.style.width.length-2), 10);
            var sx = 0, sy = 0;
            pObj.style.left = sx = window.event.clientX + window.document.body.scrollLeft - ofstX + tabWidth > cWidth ? cWidth - tabWidth : window.event.clientX + window.document.body.scrollLeft - ofstX;
            pObj.style.top = sy = window.event.clientY + window.document.body.scrollTop + ofstY;
            var oOMOStr = obj.onmouseout + "";
            if (oOMOStr.indexOf("hintOutMouse(this)") == -1) {
                obj.setAttribute("onmouseout", new Function("hintOutMouse(this);"+oOMOStr.substr(23,oOMOStr.length-25)));
            }
            var oOMMStr = obj.onmousemove + "";
            if (oOMMStr.indexOf("hintMoveLayer('popLayer')") == -1) {
                obj.setAttribute("onmousemove", new Function("hintMoveLayer('popLayer');"+oOMMStr.substr(23,oOMMStr.length-25)));
            }
            hintOnMouse(obj, sx, sy);
        }
    }
}
window.document.onmouseover = showpopuptext;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?