All Downloads are FREE. Search and download functionalities are using the official Maven repository.

a.hyperscala-ui_2.11.0.10.3.source-code.clipboard.js Maven / Gradle / Ivy

$(document).ready(function() {
    var vKey = 86;
    var cKey = 67;
    var xKey = 88;
    var mouseX = 0;
    var mouseY = 0;

    $(document).on('mousemove', function(evt) {
        mouseX = evt.pageX ? evt.pageX : evt.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        mouseY = evt.pageY ? evt.pageY : evt.clientY + document.documentElement.scrollTop + document.body.scrollTop;
    });
    $(document).on('keydown', '.use-clipboard', function(evt) {
        if (evt.ctrlKey || evt.metaKey) {
            if (evt.keyCode == vKey) {
                fireClipboardEvent('paste', evt);
                return false;
            } else if (evt.keyCode == cKey) {
                fireClipboardEvent('copy', evt);
                return false;
            } else if (evt.keyCode == xKey) {
                fireClipboardEvent('cut', evt);
                return false;
            }
        }
        return true;
    });

    function fireClipboardEvent(eventType, evt) {
        var current = $(evt.target);
        if (current.attr('id') == null) {
            current = $(evt.currentTarget);
        }
        rangy.getSelection().refresh();
        var selected = rangy.getSelection().toHtml();
        if (current.is('input') || current.is('textarea')) {
            var start = current.get(0).selectionStart;
            var end = current.get(0).selectionEnd;
            if (end < start) {
                start = current.get(0).selectionEnd;
                end = current.get(0).selectionStart;
            }
            if (end - start > 0) {
                selected = current.val().substring(start, end);
            }
        }
        realtime.send({
            id: current.attr('id'),
            type: 'clipboard.' + eventType,
            mouseX: mouseX,
            mouseY: mouseY,
            selected: selected
        });
    }
});




© 2015 - 2025 Weber Informatics LLC | Privacy Policy