focus.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  4. */
  5. /* globals document */
  6. import View from '../../../src/view/view';
  7. import ViewPosition from '../../../src/view/position';
  8. import ViewRange from '../../../src/view/range';
  9. import createViewRoot from '../_utils/createroot';
  10. const view = new View();
  11. const viewDocument = view.document;
  12. const domEditable1 = document.getElementById( 'editable1' );
  13. const domEditable2 = document.getElementById( 'editable2' );
  14. const editable1 = createViewRoot( viewDocument, 'div', 'editable1' );
  15. view.attachDomRoot( domEditable1, 'editable1' );
  16. const editable2 = createViewRoot( viewDocument, 'div', 'editable2' );
  17. view.attachDomRoot( domEditable2, 'editable2' );
  18. let text1, text2;
  19. view.change( writer => {
  20. text1 = writer.createText( 'Foo bar baz' );
  21. text2 = writer.createText( 'Foo bar baz' );
  22. writer.insert( ViewPosition._createAt( editable1, 0 ), text1 );
  23. writer.insert( ViewPosition._createAt( editable2, 0 ), text2 );
  24. } );
  25. document.getElementById( 'button1' ).addEventListener( 'click', () => {
  26. view.change( writer => {
  27. writer.setSelection( ViewRange._createFromParentsAndOffsets( text1, 4, text1, 7 ) );
  28. } );
  29. view.focus();
  30. } );
  31. document.getElementById( 'button2' ).addEventListener( 'click', () => {
  32. view.change( writer => {
  33. writer.setSelection( ViewRange._createFromParentsAndOffsets( text2, 0, text2, 3 ) );
  34. } );
  35. view.focus();
  36. } );