[英]Angular 6 - problems with GET/POST on IE11 - Symbol(rxSubscriber) is undefined
[英]ClipboardEvent undefined in IE11
我的 Angular 指令之一中有以下代码:
@HostListener('paste', ['$event'])
onPaste($event: ClipboardEvent) {
setTimeout(() => {
const input = (<HTMLInputElement>$event.target);
input.value = input.value.replace(/\D/g, '');
});
}
它在 IE11 中失败,并显示ClipboardEvent is undefined
错误。 幸运的是,我可以将它输入到Event
,但我想知道它为什么会中断 - 有没有我可以在 angular-cli.json 中添加的库以使其与ClipboardEvent
?
"lib": [
"es2017",
"dom"
],
“dom”是Event
来源......
这似乎是 IE 中带有 angulars JIT(即时编译)构建模式的问题。 它有助于使用 AOT(Ahead-Of-Time)。 然后加载站点没有错误。
ng build --aot
JIT 使浏览器在运行时编译代码,而 IE 似乎无法正确编译(这是猜测!)。
下面是 AOT 和 JIT 区别的解释: https : //angular.io/guide/aot-compiler
注意:
但是,从剪贴板粘贴在 IE 中仍然不起作用。 这里很好地解释了为什么它不能在任何地方工作: 剪贴板事件(堆栈溢出)
像这样使用
@HostListener('paste', ['$event'])
onPaste($event) {
var clipboardData;
if (window['clipboardData']) { // IE
clipboardData = window['clipboardData'];
} else if ($event.originalEvent.clipboardData && $event.originalEvent.clipboardData.getData) { // other browsers
clipboardData = $event.originalEvent.clipboardData; }
}}
剪贴板事件仍处于实验技术之下。 这将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.