New file |
0,0 → 1,180 |
/* |
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.html.common"); |
dojo.require("dojo.lang.common"); |
dojo.require("dojo.dom"); |
dojo.lang.mixin(dojo.html, dojo.dom); |
dojo.html.body = function () { |
dojo.deprecated("dojo.html.body() moved to dojo.body()", "0.5"); |
return dojo.body(); |
}; |
dojo.html.getEventTarget = function (evt) { |
if (!evt) { |
evt = dojo.global().event || {}; |
} |
var t = (evt.srcElement ? evt.srcElement : (evt.target ? evt.target : null)); |
while ((t) && (t.nodeType != 1)) { |
t = t.parentNode; |
} |
return t; |
}; |
dojo.html.getViewport = function () { |
var _window = dojo.global(); |
var _document = dojo.doc(); |
var w = 0; |
var h = 0; |
if (dojo.render.html.mozilla) { |
w = _document.documentElement.clientWidth; |
h = _window.innerHeight; |
} else { |
if (!dojo.render.html.opera && _window.innerWidth) { |
w = _window.innerWidth; |
h = _window.innerHeight; |
} else { |
if (!dojo.render.html.opera && dojo.exists(_document, "documentElement.clientWidth")) { |
var w2 = _document.documentElement.clientWidth; |
if (!w || w2 && w2 < w) { |
w = w2; |
} |
h = _document.documentElement.clientHeight; |
} else { |
if (dojo.body().clientWidth) { |
w = dojo.body().clientWidth; |
h = dojo.body().clientHeight; |
} |
} |
} |
} |
return {width:w, height:h}; |
}; |
dojo.html.getScroll = function () { |
var _window = dojo.global(); |
var _document = dojo.doc(); |
var top = _window.pageYOffset || _document.documentElement.scrollTop || dojo.body().scrollTop || 0; |
var left = _window.pageXOffset || _document.documentElement.scrollLeft || dojo.body().scrollLeft || 0; |
return {top:top, left:left, offset:{x:left, y:top}}; |
}; |
dojo.html.getParentByType = function (node, type) { |
var _document = dojo.doc(); |
var parent = dojo.byId(node); |
type = type.toLowerCase(); |
while ((parent) && (parent.nodeName.toLowerCase() != type)) { |
if (parent == (_document["body"] || _document["documentElement"])) { |
return null; |
} |
parent = parent.parentNode; |
} |
return parent; |
}; |
dojo.html.getAttribute = function (node, attr) { |
node = dojo.byId(node); |
if ((!node) || (!node.getAttribute)) { |
return null; |
} |
var ta = typeof attr == "string" ? attr : new String(attr); |
var v = node.getAttribute(ta.toUpperCase()); |
if ((v) && (typeof v == "string") && (v != "")) { |
return v; |
} |
if (v && v.value) { |
return v.value; |
} |
if ((node.getAttributeNode) && (node.getAttributeNode(ta))) { |
return (node.getAttributeNode(ta)).value; |
} else { |
if (node.getAttribute(ta)) { |
return node.getAttribute(ta); |
} else { |
if (node.getAttribute(ta.toLowerCase())) { |
return node.getAttribute(ta.toLowerCase()); |
} |
} |
} |
return null; |
}; |
dojo.html.hasAttribute = function (node, attr) { |
return dojo.html.getAttribute(dojo.byId(node), attr) ? true : false; |
}; |
dojo.html.getCursorPosition = function (e) { |
e = e || dojo.global().event; |
var cursor = {x:0, y:0}; |
if (e.pageX || e.pageY) { |
cursor.x = e.pageX; |
cursor.y = e.pageY; |
} else { |
var de = dojo.doc().documentElement; |
var db = dojo.body(); |
cursor.x = e.clientX + ((de || db)["scrollLeft"]) - ((de || db)["clientLeft"]); |
cursor.y = e.clientY + ((de || db)["scrollTop"]) - ((de || db)["clientTop"]); |
} |
return cursor; |
}; |
dojo.html.isTag = function (node) { |
node = dojo.byId(node); |
if (node && node.tagName) { |
for (var i = 1; i < arguments.length; i++) { |
if (node.tagName.toLowerCase() == String(arguments[i]).toLowerCase()) { |
return String(arguments[i]).toLowerCase(); |
} |
} |
} |
return ""; |
}; |
if (dojo.render.html.ie && !dojo.render.html.ie70) { |
if (window.location.href.substr(0, 6).toLowerCase() != "https:") { |
(function () { |
var xscript = dojo.doc().createElement("script"); |
xscript.src = "javascript:'dojo.html.createExternalElement=function(doc, tag){ return doc.createElement(tag); }'"; |
dojo.doc().getElementsByTagName("head")[0].appendChild(xscript); |
})(); |
} |
} else { |
dojo.html.createExternalElement = function (doc, tag) { |
return doc.createElement(tag); |
}; |
} |
dojo.html._callDeprecated = function (inFunc, replFunc, args, argName, retValue) { |
dojo.deprecated("dojo.html." + inFunc, "replaced by dojo.html." + replFunc + "(" + (argName ? "node, {" + argName + ": " + argName + "}" : "") + ")" + (retValue ? "." + retValue : ""), "0.5"); |
var newArgs = []; |
if (argName) { |
var argsIn = {}; |
argsIn[argName] = args[1]; |
newArgs.push(args[0]); |
newArgs.push(argsIn); |
} else { |
newArgs = args; |
} |
var ret = dojo.html[replFunc].apply(dojo.html, args); |
if (retValue) { |
return ret[retValue]; |
} else { |
return ret; |
} |
}; |
dojo.html.getViewportWidth = function () { |
return dojo.html._callDeprecated("getViewportWidth", "getViewport", arguments, null, "width"); |
}; |
dojo.html.getViewportHeight = function () { |
return dojo.html._callDeprecated("getViewportHeight", "getViewport", arguments, null, "height"); |
}; |
dojo.html.getViewportSize = function () { |
return dojo.html._callDeprecated("getViewportSize", "getViewport", arguments); |
}; |
dojo.html.getScrollTop = function () { |
return dojo.html._callDeprecated("getScrollTop", "getScroll", arguments, null, "top"); |
}; |
dojo.html.getScrollLeft = function () { |
return dojo.html._callDeprecated("getScrollLeft", "getScroll", arguments, null, "left"); |
}; |
dojo.html.getScrollOffset = function () { |
return dojo.html._callDeprecated("getScrollOffset", "getScroll", arguments, null, "offset"); |
}; |
|