kt-utility.js

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· JavaScript 代码 · 共 110 行

JS
110
字号
/* * general utility functions for KT */var clientHas = {     'Event' : window.Event ? true : false,    'addEventListener' : window.addEventListener ? true : false}var message;function addEvent(obj, event, func, capture) {    if (obj.attachEvent) { obj.attachEvent('on'+event, func); }    else { obj.addEventListener(event, func, capture); }}function getTarget() {	    if(clientHas['Event']) 	return getTarget.caller.arguments[0].target;    else 	return event.srcElement;}    function confirmDelete(e) {    var     target = getTarget(),    msg = target.getAttribute('kt:deleteMessage');    if(!isUndefinedOrNull(msg)) {	var v = confirm(msg);    } else {	var v = confirm(message);    }     if (v == false) {        if (e.stopPropagation) {            e.stopPropagation();            e.preventDefault();        }        else if (window.event)            return false;    }    return v; }  function initDeleteProtection(m) {    function setClickFunction(fn, node) {        // addToCallStack(node,'onClick',fn);        if (node.tagName == 'SPAN') {            var ahrefs = node.getElementsByTagName('A');            if (ahrefs.length == 1) { node = ahrefs[0]; }            else { return null; }        }        addEvent(node, 'click', fn, true);            }        var fn = confirmDelete;    message = m;    var elements = getElementsByTagAndClassName(null,'ktDelete');    forEach(elements, partial(setClickFunction, fn));        elements = getElementsByTagAndClassName(null,'ktLinkDelete');    forEach(elements, partial(setClickFunction, fn));}// quick and dirty helper - find the nearest parent item matching tagName. // FIXME steal the klass or tagName logic from MochiK.// FIXME add to a core js-lib, and add some unit-tests.function breadcrumbFind(elem, tagName) {    var stopTag = 'BODY';    var currentTag = elem.tagName;    var currentElem = elem;    while ((currentTag != stopTag) && (currentTag != tagName)) {        currentElem = currentElem.parentNode;        currentTag = currentElem.tagName;    }    if (currentTag == tagName) {         return currentElem;     } else {        return null;    }}// JSON stuff// callback to check for not_logged_in error, throw function checkKTError(res) {    if(res.error) {	if(res.alert) {	    alert(res.message);	}	throw new NamedError(res.type);    }    return res;}// Setsfunction Set() {    var set = {};    forEach(arguments, function(k) { set[k] = 1; });    return set;}

⌨️ 快捷键说明

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