如何获取复制/粘贴事件的剪贴板数据?

时间:2015-11-13 10:50:02

标签: angularjs

如何使用ng-paste和ng-copy指令获取剪贴板数据?

<input type="text" ng-paste="mymodel = 'the clipboard text??'" />

1 个答案:

答案 0 :(得分:2)

crossbrowser解决方案是定义一个$ clipboard服务,如下所示:

function Clipboard($window) {
    this.getText = function ($event) {
        var text;
        if ($window.clipboardData) { //IE
            text = $window.clipboardData.getData('Text');
        } else if ($event.originalEvent.clipboardData) {
            try {
                text = $event.originalEvent.clipboardData.getData('text/plain');
            } catch (ex) {
                text = undefined;
            }
        }
        if (text) {
            $event.preventDefault();
        }
        return text;
    };
}
angular.module("ngClipboard", []).service("$clipboard", Clipboard);

然后在控制器中注入服务并定义委托方法,它可以像这样使用:

<input type="text" ng-paste="mymodel = getText($event)" />