TinyMCE 编辑器右键单击粘贴不起作用
TinyMCE editor right click pasting not working
public async ngAfterViewInit(): Promise<void> {
tinymce.init({
selector: `textarea#${this.identifier}`,
menubar: false,
contextmenu: "copy paste",
mobile: {
theme: 'silver'
},
readonly: !this.arguments.isEditMode,
language: this._applicationService.applicationLanguage.replace('-', '_'),
plugins: 'print autoresize preview fullpage importcss searchreplace autolink directionality visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists imagetools textpattern noneditable help charmap emoticons',
toolbar: 'undo redo | bold italic underline strikethrough | fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | insertfile image media link | table | preview fullscreen',
paste_as_text: true,
fontsize_formats: '8pt 8.5pt 9pt 9.5pt 10pt 10.5pt 11pt 11.5pt 12pt 12.5pt 14pt 14.5pt 16pt 16.5pt 18pt 18.5pt 20pt 20.5pt 22pt 22.5pt 24pt 24.5pt 26pt 26.5pt 30pt 30.5pt 36pt 36.5pt'}
这是我的代码,当我右键单击时,我在上下文菜单中有复制和粘贴选项,复制有效但粘贴无效。
我应该如何解决它?
我不认为你能在大多数现代浏览器上做你想做的事。
如果您尝试在 TinyMCE 中使用内置的 Cut/Copy/Paste 工具栏按钮或菜单选项,您会在大多数浏览器中看到:
"Your browser doesn't support direct access to the clipboard. Please
use the Ctrl+X/C/V keyboard shortcuts instead."
正如编辑所说,这只是对您在某些浏览器中通过 JavaScript 可以/不能直接执行的操作的限制。
想象一下,如果您的任意 JavaScript 可以随时访问剪贴板,您会怎么做? "Bad people" 不遵守规则,那么如果(加载网页时)他们 JavaScript 从剪贴板抓取所有内容并将其发送到他们的服务器怎么办?
随着时间的推移,浏览器制造商意识到直接访问剪贴板是 "bad" ...通过让用户键入 CRTL+C 和 CRTL+V,您实际上是在告诉浏览器您希望它访问剪贴板。
IE11 确实允许通过遗留 API 进行访问,但目前没有其他浏览器完全支持剪贴板 API,因此复制剪贴板中内容的唯一方法是使用键盘。
注意: 使用 copy
将内容放入剪贴板适用于更广泛的浏览器集,但以编程方式访问剪贴板以获取其内容由于上述原因,(粘贴的第一步)不会在现代浏览器中发生。
public async ngAfterViewInit(): Promise<void> {
tinymce.init({
selector: `textarea#${this.identifier}`,
menubar: false,
contextmenu: "copy paste",
mobile: {
theme: 'silver'
},
readonly: !this.arguments.isEditMode,
language: this._applicationService.applicationLanguage.replace('-', '_'),
plugins: 'print autoresize preview fullpage importcss searchreplace autolink directionality visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists imagetools textpattern noneditable help charmap emoticons',
toolbar: 'undo redo | bold italic underline strikethrough | fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | insertfile image media link | table | preview fullscreen',
paste_as_text: true,
fontsize_formats: '8pt 8.5pt 9pt 9.5pt 10pt 10.5pt 11pt 11.5pt 12pt 12.5pt 14pt 14.5pt 16pt 16.5pt 18pt 18.5pt 20pt 20.5pt 22pt 22.5pt 24pt 24.5pt 26pt 26.5pt 30pt 30.5pt 36pt 36.5pt'}
这是我的代码,当我右键单击时,我在上下文菜单中有复制和粘贴选项,复制有效但粘贴无效。 我应该如何解决它?
我不认为你能在大多数现代浏览器上做你想做的事。
如果您尝试在 TinyMCE 中使用内置的 Cut/Copy/Paste 工具栏按钮或菜单选项,您会在大多数浏览器中看到:
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead."
正如编辑所说,这只是对您在某些浏览器中通过 JavaScript 可以/不能直接执行的操作的限制。
想象一下,如果您的任意 JavaScript 可以随时访问剪贴板,您会怎么做? "Bad people" 不遵守规则,那么如果(加载网页时)他们 JavaScript 从剪贴板抓取所有内容并将其发送到他们的服务器怎么办?
随着时间的推移,浏览器制造商意识到直接访问剪贴板是 "bad" ...通过让用户键入 CRTL+C 和 CRTL+V,您实际上是在告诉浏览器您希望它访问剪贴板。
IE11 确实允许通过遗留 API 进行访问,但目前没有其他浏览器完全支持剪贴板 API,因此复制剪贴板中内容的唯一方法是使用键盘。
注意: 使用 copy
将内容放入剪贴板适用于更广泛的浏览器集,但以编程方式访问剪贴板以获取其内容由于上述原因,(粘贴的第一步)不会在现代浏览器中发生。