editor.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import Quill from 'quill';
  2. const BlockEmbed = Quill.import('blots/block/embed')
  3. export class Audio extends BlockEmbed {
  4. static create(value) {
  5. const node = super.create(value);
  6. node.setAttribute('src', value.src);
  7. node.setAttribute('controls', true);
  8. node.setAttribute('name', value.name.replace(' ', ''));
  9. node.setAttribute('id', value.id);
  10. node.setAttribute('poster', value.poster)
  11. return node;
  12. }
  13. // 添加value获取当前的audio元素。拿到audio元素的属性。
  14. static value(domNode) {
  15. const value = {
  16. src: '',
  17. name: '',
  18. id: '',
  19. controls: true,
  20. poster: ''
  21. };
  22. // 这里要加判断。不然会显示undefined
  23. value.src = domNode.getAttribute('src');
  24. value.name = domNode.getAttribute('name');
  25. value.poster = domNode.getAttribute('poster');
  26. value.id = domNode.getAttribute('id');
  27. return value;
  28. }
  29. }
  30. Audio.blotName = 'audio'
  31. Audio.className = 'ql-audio'
  32. Audio.tagName = 'audio'
  33. // 视频按钮
  34. export class View extends BlockEmbed {
  35. static create(value) {
  36. const node = super.create(value)
  37. node.setAttribute('controls', true);
  38. node.setAttribute('src', value);
  39. node.setAttribute('style', 'width: 100%; display: block')
  40. return node;
  41. }
  42. static value(domNode) {
  43. const value = domNode.getAttribute('src')
  44. return value
  45. }
  46. }
  47. View.blotName = 'view'
  48. View.className = 'ql-view'
  49. View.tagName = 'video'