focus.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* globals document */
  6. import Document from '../../../src/view/document';
  7. import { parse } from '../../../src/dev-utils/view';
  8. const viewDocument = new Document();
  9. const domEditable1 = document.getElementById( 'editable1' );
  10. const domEditable2 = document.getElementById( 'editable2' );
  11. const editable1 = viewDocument.createRoot( domEditable1, 'editable1' );
  12. const editable2 = viewDocument.createRoot( domEditable2, 'editable2' );
  13. viewDocument.on( 'selectionChange', ( evt, data ) => {
  14. viewDocument.selection.setTo( data.newSelection );
  15. } );
  16. const { selection: selection1 } = parse( '<p>Foo {bar} baz.</p>', { rootElement: editable1 } );
  17. const { selection: selection2 } = parse( '<p>{Foo} bar baz.</p>', { rootElement: editable2 } );
  18. document.getElementById( 'button1' ).addEventListener( 'click', () => {
  19. viewDocument.selection.setTo( selection1 );
  20. viewDocument.focus();
  21. } );
  22. document.getElementById( 'button2' ).addEventListener( 'click', () => {
  23. viewDocument.selection.setTo( selection2 );
  24. viewDocument.focus();
  25. } );
  26. viewDocument.render();