|
Struts example source code file (browser.js)
The Struts browser.js source code/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ dojo.provide("dojo.event.browser"); dojo.require("dojo.event.common"); dojo._ie_clobber = new function () { this.clobberNodes = []; function nukeProp(node, prop) { try { node[prop] = null; } catch (e) { } try { delete node[prop]; } catch (e) { } try { node.removeAttribute(prop); } catch (e) { } } this.clobber = function (nodeRef) { var na; var tna; if (nodeRef) { tna = nodeRef.all || nodeRef.getElementsByTagName("*"); na = [nodeRef]; for (var x = 0; x < tna.length; x++) { if (tna[x]["__doClobber__"]) { na.push(tna[x]); } } } else { try { window.onload = null; } catch (e) { } na = (this.clobberNodes.length) ? this.clobberNodes : document.all; } tna = null; var basis = {}; for (var i = na.length - 1; i >= 0; i = i - 1) { var el = na[i]; try { if (el && el["__clobberAttrs__"]) { for (var j = 0; j < el.__clobberAttrs__.length; j++) { nukeProp(el, el.__clobberAttrs__[j]); } nukeProp(el, "__clobberAttrs__"); nukeProp(el, "__doClobber__"); } } catch (e) { } } na = null; }; }; if (dojo.render.html.ie) { dojo.addOnUnload(function () { dojo._ie_clobber.clobber(); try { if ((dojo["widget"]) && (dojo.widget["manager"])) { dojo.widget.manager.destroyAll(); } } catch (e) { } if (dojo.widget) { for (var name in dojo.widget._templateCache) { if (dojo.widget._templateCache[name].node) { dojo.dom.destroyNode(dojo.widget._templateCache[name].node); dojo.widget._templateCache[name].node = null; delete dojo.widget._templateCache[name].node; } } } try { window.onload = null; } catch (e) { } try { window.onunload = null; } catch (e) { } dojo._ie_clobber.clobberNodes = []; }); } dojo.event.browser = new function () { var clobberIdx = 0; this.normalizedEventName = function (eventName) { switch (eventName) { case "CheckboxStateChange": case "DOMAttrModified": case "DOMMenuItemActive": case "DOMMenuItemInactive": case "DOMMouseScroll": case "DOMNodeInserted": case "DOMNodeRemoved": case "RadioStateChange": return eventName; break; default: var lcn = eventName.toLowerCase(); return (lcn.indexOf("on") == 0) ? lcn.substr(2) : lcn; break; } }; this.clean = function (node) { if (dojo.render.html.ie) { dojo._ie_clobber.clobber(node); } }; this.addClobberNode = function (node) { if (!dojo.render.html.ie) { return; } if (!node["__doClobber__"]) { node.__doClobber__ = true; dojo._ie_clobber.clobberNodes.push(node); node.__clobberAttrs__ = []; } }; this.addClobberNodeAttrs = function (node, props) { if (!dojo.render.html.ie) { return; } this.addClobberNode(node); for (var x = 0; x < props.length; x++) { node.__clobberAttrs__.push(props[x]); } }; this.removeListener = function (node, evtName, fp, capture) { if (!capture) { var capture = false; } evtName = dojo.event.browser.normalizedEventName(evtName); if (evtName == "key") { if (dojo.render.html.ie) { this.removeListener(node, "onkeydown", fp, capture); } evtName = "keypress"; } if (node.removeEventListener) { node.removeEventListener(evtName, fp, capture); } }; this.addListener = function (node, evtName, fp, capture, dontFix) { if (!node) { return; } if (!capture) { var capture = false; } evtName = dojo.event.browser.normalizedEventName(evtName); if (evtName == "key") { if (dojo.render.html.ie) { this.addListener(node, "onkeydown", fp, capture, dontFix); } evtName = "keypress"; } if (!dontFix) { var newfp = function (evt) { if (!evt) { evt = window.event; } var ret = fp(dojo.event.browser.fixEvent(evt, this)); if (capture) { dojo.event.browser.stopEvent(evt); } return ret; }; } else { newfp = fp; } if (node.addEventListener) { node.addEventListener(evtName, newfp, capture); return newfp; } else { evtName = "on" + evtName; if (typeof node[evtName] == "function") { var oldEvt = node[evtName]; node[evtName] = function (e) { oldEvt(e); return newfp(e); }; } else { node[evtName] = newfp; } if (dojo.render.html.ie) { this.addClobberNodeAttrs(node, [evtName]); } return newfp; } }; this.isEvent = function (obj) { return (typeof obj != "undefined") && (obj) && (typeof Event != "undefined") && (obj.eventPhase); }; this.currentEvent = null; this.callListener = function (listener, curTarget) { if (typeof listener != "function") { dojo.raise("listener not a function: " + listener); } dojo.event.browser.currentEvent.currentTarget = curTarget; return listener.call(curTarget, dojo.event.browser.currentEvent); }; this._stopPropagation = function () { dojo.event.browser.currentEvent.cancelBubble = true; }; this._preventDefault = function () { dojo.event.browser.currentEvent.returnValue = false; }; this.keys = {KEY_BACKSPACE:8, KEY_TAB:9, KEY_CLEAR:12, KEY_ENTER:13, KEY_SHIFT:16, KEY_CTRL:17, KEY_ALT:18, KEY_PAUSE:19, KEY_CAPS_LOCK:20, KEY_ESCAPE:27, KEY_SPACE:32, KEY_PAGE_UP:33, KEY_PAGE_DOWN:34, KEY_END:35, KEY_HOME:36, KEY_LEFT_ARROW:37, KEY_UP_ARROW:38, KEY_RIGHT_ARROW:39, KEY_DOWN_ARROW:40, KEY_INSERT:45, KEY_DELETE:46, KEY_HELP:47, KEY_LEFT_WINDOW:91, KEY_RIGHT_WINDOW:92, KEY_SELECT:93, KEY_NUMPAD_0:96, KEY_NUMPAD_1:97, KEY_NUMPAD_2:98, KEY_NUMPAD_3:99, KEY_NUMPAD_4:100, KEY_NUMPAD_5:101, KEY_NUMPAD_6:102, KEY_NUMPAD_7:103, KEY_NUMPAD_8:104, KEY_NUMPAD_9:105, KEY_NUMPAD_MULTIPLY:106, KEY_NUMPAD_PLUS:107, KEY_NUMPAD_ENTER:108, KEY_NUMPAD_MINUS:109, KEY_NUMPAD_PERIOD:110, KEY_NUMPAD_DIVIDE:111, KEY_F1:112, KEY_F2:113, KEY_F3:114, KEY_F4:115, KEY_F5:116, KEY_F6:117, KEY_F7:118, KEY_F8:119, KEY_F9:120, KEY_F10:121, KEY_F11:122, KEY_F12:123, KEY_F13:124, KEY_F14:125, KEY_F15:126, KEY_NUM_LOCK:144, KEY_SCROLL_LOCK:145}; this.revKeys = []; for (var key in this.keys) { this.revKeys[this.keys[key]] = key; } this.fixEvent = function (evt, sender) { if (!evt) { if (window["event"]) { evt = window.event; } } if ((evt["type"]) && (evt["type"].indexOf("key") == 0)) { evt.keys = this.revKeys; for (var key in this.keys) { evt[key] = this.keys[key]; } if (evt["type"] == "keydown" && dojo.render.html.ie) { switch (evt.keyCode) { case evt.KEY_SHIFT: case evt.KEY_CTRL: case evt.KEY_ALT: case evt.KEY_CAPS_LOCK: case evt.KEY_LEFT_WINDOW: case evt.KEY_RIGHT_WINDOW: case evt.KEY_SELECT: case evt.KEY_NUM_LOCK: case evt.KEY_SCROLL_LOCK: case evt.KEY_NUMPAD_0: case evt.KEY_NUMPAD_1: case evt.KEY_NUMPAD_2: case evt.KEY_NUMPAD_3: case evt.KEY_NUMPAD_4: case evt.KEY_NUMPAD_5: case evt.KEY_NUMPAD_6: case evt.KEY_NUMPAD_7: case evt.KEY_NUMPAD_8: case evt.KEY_NUMPAD_9: case evt.KEY_NUMPAD_PERIOD: break; case evt.KEY_NUMPAD_MULTIPLY: case evt.KEY_NUMPAD_PLUS: case evt.KEY_NUMPAD_ENTER: case evt.KEY_NUMPAD_MINUS: case evt.KEY_NUMPAD_DIVIDE: break; case evt.KEY_PAUSE: case evt.KEY_TAB: case evt.KEY_BACKSPACE: case evt.KEY_ENTER: case evt.KEY_ESCAPE: case evt.KEY_PAGE_UP: case evt.KEY_PAGE_DOWN: case evt.KEY_END: case evt.KEY_HOME: case evt.KEY_LEFT_ARROW: case evt.KEY_UP_ARROW: case evt.KEY_RIGHT_ARROW: case evt.KEY_DOWN_ARROW: case evt.KEY_INSERT: case evt.KEY_DELETE: case evt.KEY_F1: case evt.KEY_F2: case evt.KEY_F3: case evt.KEY_F4: case evt.KEY_F5: case evt.KEY_F6: case evt.KEY_F7: case evt.KEY_F8: case evt.KEY_F9: case evt.KEY_F10: case evt.KEY_F11: case evt.KEY_F12: case evt.KEY_F12: case evt.KEY_F13: case evt.KEY_F14: case evt.KEY_F15: case evt.KEY_CLEAR: case evt.KEY_HELP: evt.key = evt.keyCode; break; default: if (evt.ctrlKey || evt.altKey) { var unifiedCharCode = evt.keyCode; if (unifiedCharCode >= 65 && unifiedCharCode <= 90 && evt.shiftKey == false) { unifiedCharCode += 32; } if (unifiedCharCode >= 1 && unifiedCharCode <= 26 && evt.ctrlKey) { unifiedCharCode += 96; } evt.key = String.fromCharCode(unifiedCharCode); } } } else { if (evt["type"] == "keypress") { if (dojo.render.html.opera) { if (evt.which == 0) { evt.key = evt.keyCode; } else { if (evt.which > 0) { switch (evt.which) { case evt.KEY_SHIFT: case evt.KEY_CTRL: case evt.KEY_ALT: case evt.KEY_CAPS_LOCK: case evt.KEY_NUM_LOCK: case evt.KEY_SCROLL_LOCK: break; case evt.KEY_PAUSE: case evt.KEY_TAB: case evt.KEY_BACKSPACE: case evt.KEY_ENTER: case evt.KEY_ESCAPE: evt.key = evt.which; break; default: var unifiedCharCode = evt.which; if ((evt.ctrlKey || evt.altKey || evt.metaKey) && (evt.which >= 65 && evt.which <= 90 && evt.shiftKey == false)) { unifiedCharCode += 32; } evt.key = String.fromCharCode(unifiedCharCode); } } } } else { if (dojo.render.html.ie) { if (!evt.ctrlKey && !evt.altKey && evt.keyCode >= evt.KEY_SPACE) { evt.key = String.fromCharCode(evt.keyCode); } } else { if (dojo.render.html.safari) { switch (evt.keyCode) { case 25: evt.key = evt.KEY_TAB; evt.shift = true; break; case 63232: evt.key = evt.KEY_UP_ARROW; break; case 63233: evt.key = evt.KEY_DOWN_ARROW; break; case 63234: evt.key = evt.KEY_LEFT_ARROW; break; case 63235: evt.key = evt.KEY_RIGHT_ARROW; break; case 63236: evt.key = evt.KEY_F1; break; case 63237: evt.key = evt.KEY_F2; break; case 63238: evt.key = evt.KEY_F3; break; case 63239: evt.key = evt.KEY_F4; break; case 63240: evt.key = evt.KEY_F5; break; case 63241: evt.key = evt.KEY_F6; break; case 63242: evt.key = evt.KEY_F7; break; case 63243: evt.key = evt.KEY_F8; break; case 63244: evt.key = evt.KEY_F9; break; case 63245: evt.key = evt.KEY_F10; break; case 63246: evt.key = evt.KEY_F11; break; case 63247: evt.key = evt.KEY_F12; break; case 63250: evt.key = evt.KEY_PAUSE; break; case 63272: evt.key = evt.KEY_DELETE; break; case 63273: evt.key = evt.KEY_HOME; break; case 63275: evt.key = evt.KEY_END; break; case 63276: evt.key = evt.KEY_PAGE_UP; break; case 63277: evt.key = evt.KEY_PAGE_DOWN; break; case 63302: evt.key = evt.KEY_INSERT; break; case 63248: case 63249: case 63289: break; default: evt.key = evt.charCode >= evt.KEY_SPACE ? String.fromCharCode(evt.charCode) : evt.keyCode; } } else { evt.key = evt.charCode > 0 ? String.fromCharCode(evt.charCode) : evt.keyCode; } } } } } } if (dojo.render.html.ie) { if (!evt.target) { evt.target = evt.srcElement; } if (!evt.currentTarget) { evt.currentTarget = (sender ? sender : evt.srcElement); } if (!evt.layerX) { evt.layerX = evt.offsetX; } if (!evt.layerY) { evt.layerY = evt.offsetY; } var doc = (evt.srcElement && evt.srcElement.ownerDocument) ? evt.srcElement.ownerDocument : document; var docBody = ((dojo.render.html.ie55) || (doc["compatMode"] == "BackCompat")) ? doc.body : doc.documentElement; if (!evt.pageX) { evt.pageX = evt.clientX + (docBody.scrollLeft || 0); } if (!evt.pageY) { evt.pageY = evt.clientY + (docBody.scrollTop || 0); } if (evt.type == "mouseover") { evt.relatedTarget = evt.fromElement; } if (evt.type == "mouseout") { evt.relatedTarget = evt.toElement; } this.currentEvent = evt; evt.callListener = this.callListener; evt.stopPropagation = this._stopPropagation; evt.preventDefault = this._preventDefault; } return evt; }; this.stopEvent = function (evt) { if (window.event) { evt.cancelBubble = true; evt.returnValue = false; } else { evt.preventDefault(); evt.stopPropagation(); } }; }; Other Struts examples (source code examples)Here is a short list of links related to this Struts browser.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.