Functions | Variables

/home/ivan/src/sit/branches/3.x/scripts/dojo/src/html/selection.js File Reference

Go to the source code of this file.

Functions

dojo require ("dojo.html.common")
dojo provide ("dojo.html.selection")
dojo lang mixin (dojo.html.selection,{getType:function(){if(dojo.doc()["selection"]){return dojo.html.selectionType[dojo.doc().selection.type.toUpperCase()];}else{var stype=dojo.html.selectionType.TEXT;var oSel;try{oSel=dojo.global().getSelection();}catch(e){}if(oSel &&oSel.rangeCount==1){var oRange=oSel.getRangeAt(0);if(oRange.startContainer==oRange.endContainer &&(oRange.endOffset-oRange.startOffset)==1 &&oRange.startContainer.nodeType!=dojo.dom.TEXT_NODE){stype=dojo.html.selectionType.CONTROL;}}return stype;}}, isCollapsed:function(){var _window=dojo.global();var _document=dojo.doc();if(_document["selection"]){return _document.selection.createRange().text=="";}else{if(_window["getSelection"]){var selection=_window.getSelection();if(dojo.lang.isString(selection)){return selection=="";}else{return selection.isCollapsed||selection.toString()=="";}}}}, getSelectedElement:function(){if(dojo.html.selection.getType()==dojo.html.selectionType.CONTROL){if(dojo.doc()["selection"]){var range=dojo.doc().selection.createRange();if(range &&range.item){return dojo.doc().selection.createRange().item(0);}}else{var selection=dojo.global().getSelection();return selection.anchorNode.childNodes[selection.anchorOffset];}}}, getParentElement:function(){if(dojo.html.selection.getType()==dojo.html.selectionType.CONTROL){var p=dojo.html.selection.getSelectedElement();if(p){return p.parentNode;}}else{if(dojo.doc()["selection"]){return dojo.doc().selection.createRange().parentElement();}else{var selection=dojo.global().getSelection();if(selection){var node=selection.anchorNode;while(node &&node.nodeType!=dojo.dom.ELEMENT_NODE){node=node.parentNode;}return node;}}}}, getSelectedText:function(){if(dojo.doc()["selection"]){if(dojo.html.selection.getType()==dojo.html.selectionType.CONTROL){return null;}return dojo.doc().selection.createRange().text;}else{var selection=dojo.global().getSelection();if(selection){return selection.toString();}}}, getSelectedHtml:function(){if(dojo.doc()["selection"]){if(dojo.html.selection.getType()==dojo.html.selectionType.CONTROL){return null;}return dojo.doc().selection.createRange().htmlText;}else{var selection=dojo.global().getSelection();if(selection &&selection.rangeCount){var frag=selection.getRangeAt(0).cloneContents();var div=document.createElement("div");div.appendChild(frag);return div.innerHTML;}return null;}}, hasAncestorElement:function(tagName){return(dojo.html.selection.getAncestorElement.apply(this, arguments)!=null);}, getAncestorElement:function(tagName){var node=dojo.html.selection.getSelectedElement()||dojo.html.selection.getParentElement();while(node){if(dojo.html.selection.isTag(node, arguments).length > 0){return node;}node=node.parentNode;}return null;}, isTag:function(node, tags){if(node &&node.tagName){for(var i=0;i< tags.length;i++){if(node.tagName.toLowerCase()==String(tags[i]).toLowerCase()){return String(tags[i]).toLowerCase();}}}return"";}, selectElement:function(element){var _window=dojo.global();var _document=dojo.doc();element=dojo.byId(element);if(_document.selection &&dojo.body().createTextRange){try{var range=dojo.body().createControlRange();range.addElement(element);range.select();}catch(e){dojo.html.selection.selectElementChildren(element);}}else{if(_window["getSelection"]){var selection=_window.getSelection();if(selection["removeAllRanges"]){var range=_document.createRange();range.selectNode(element);selection.removeAllRanges();selection.addRange(range);}}}}, selectElementChildren:function(element){var _window=dojo.global();var _document=dojo.doc();element=dojo.byId(element);if(_document.selection &&dojo.body().createTextRange){var range=dojo.body().createTextRange();range.moveToElementText(element);range.select();}else{if(_window["getSelection"]){var selection=_window.getSelection();if(selection["setBaseAndExtent"]){selection.setBaseAndExtent(element, 0, element, element.innerText.length-1);}else{if(selection["selectAllChildren"]){selection.selectAllChildren(element);}}}}}, getBookmark:function(){var bookmark;var _document=dojo.doc();if(_document["selection"]){var range=_document.selection.createRange();bookmark=range.getBookmark();}else{var selection;try{selection=dojo.global().getSelection();}catch(e){}if(selection){var range=selection.getRangeAt(0);bookmark=range.cloneRange();}else{dojo.debug("No idea how to store the current selection for this browser!");}}return bookmark;}, moveToBookmark:function(bookmark){var _document=dojo.doc();if(_document["selection"]){var range=_document.selection.createRange();range.moveToBookmark(bookmark);range.select();}else{var selection;try{selection=dojo.global().getSelection();}catch(e){}if(selection &&selection["removeAllRanges"]){selection.removeAllRanges();selection.addRange(bookmark);}else{dojo.debug("No idea how to restore selection for this browser!");}}}, collapse:function(beginning){if(dojo.global()["getSelection"]){var selection=dojo.global().getSelection();if(selection.removeAllRanges){if(beginning){selection.collapseToStart();}else{selection.collapseToEnd();}}else{dojo.global().getSelection().collapse(beginning);}}else{if(dojo.doc().selection){var range=dojo.doc().selection.createRange();range.collapse(beginning);range.select();}}}, remove:function(){if(dojo.doc().selection){var selection=dojo.doc().selection;if(selection.type.toUpperCase()!="NONE"){selection.clear();}return selection;}else{var selection=dojo.global().getSelection();for(var i=0;i< selection.rangeCount;i++){selection.getRangeAt(i).deleteContents();}return selection;}}})

Variables

dojo html selectionType = {NONE:0, TEXT:1, CONTROL:2}
dojo html clearSelection
dojo html disableSelection
dojo html enableSelection
dojo html selectElement
dojo html selectInputText
dojo html isSelectionCollapsed

Function Documentation

dojo lang mixin ( dojo.html.  selection  ) 
dojo provide ( "dojo.html.selection"   ) 
dojo require ( "dojo.html.common"   ) 

Variable Documentation

Initial value:
 function () {
    var _window = dojo.global();
    var _document = dojo.doc();
    try {
        if (_window["getSelection"]) {
            if (dojo.render.html.safari) {
                _window.getSelection().collapse();
            } else {
                _window.getSelection().removeAllRanges();
            }
        } else {
            if (_document.selection) {
                if (_document.selection.empty) {
                    _document.selection.empty();
                } else {
                    if (_document.selection.clear) {
                        _document.selection.clear();
                    }
                }
            }
        }
        return true;
    }
    catch (e) {
        dojo.debug(e);
        return false;
    }
}

Definition at line 18 of file selection.js.

Initial value:
 function (element) {
    element = dojo.byId(element) || dojo.body();
    var h = dojo.render.html;
    if (h.mozilla) {
        element.style.MozUserSelect = "none";
    } else {
        if (h.safari) {
            element.style.KhtmlUserSelect = "none";
        } else {
            if (h.ie) {
                element.unselectable = "on";
            } else {
                return false;
            }
        }
    }
    return true;
}

Definition at line 46 of file selection.js.

Initial value:
 function (element) {
    element = dojo.byId(element) || dojo.body();
    var h = dojo.render.html;
    if (h.mozilla) {
        element.style.MozUserSelect = "";
    } else {
        if (h.safari) {
            element.style.KhtmlUserSelect = "";
        } else {
            if (h.ie) {
                element.unselectable = "off";
            } else {
                return false;
            }
        }
    }
    return true;
}

Definition at line 64 of file selection.js.

Initial value:
 function () {
    dojo.deprecated("dojo.html.isSelectionCollapsed", "replaced by dojo.html.selection.isCollapsed", 0.5);
    return dojo.html.selection.isCollapsed();
}

Definition at line 102 of file selection.js.

Initial value:
 function (element) {
    dojo.deprecated("dojo.html.selectElement", "replaced by dojo.html.selection.selectElementChildren", 0.5);
}

Definition at line 82 of file selection.js.

Initial value:
 function (element) {
    var _window = dojo.global();
    var _document = dojo.doc();
    element = dojo.byId(element);
    if (_document["selection"] && dojo.body()["createTextRange"]) {
        var range = element.createTextRange();
        range.moveStart("character", 0);
        range.moveEnd("character", element.value.length);
        range.select();
    } else {
        if (_window["getSelection"]) {
            var selection = _window.getSelection();
            element.setSelectionRange(0, element.value.length);
        }
    }
    element.focus();
}

Definition at line 85 of file selection.js.

dojo html selectionType = {NONE:0, TEXT:1, CONTROL:2}

Definition at line 17 of file selection.js.

For more help developing with SiT! see http://sitracker.org/wiki/DevelopmentHowTo

© 2008-2011 Support Incident Tracker

Tsohost Logo