removeformat.js 5.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. module( "plugins.removeformat" );
  2. /*trace 860*/
  3. test( 'trace 860:对包含超链接的段落清除样式', function () {
  4. var editor = te.obj[0];
  5. var range = te.obj[1];
  6. editor.setContent( '<p><span style="color:red">hello</span><a href="http://www.baidu.com/" style="font-size: 16pt;">baidu</a></p>' );
  7. range.setStart( editor.body.firstChild.firstChild.nextSibling.firstChild, 2 ).collapse( true ).select();
  8. editor.execCommand( 'removeformat' );
  9. equal( editor.getContent(), '<p>hello<a href="http://www.baidu.com/">baidu</a></p>', '对包含超链接的段落去除样式' );
  10. } );
  11. /*trace 800*/
  12. test( 'trace 800:清除超链接的颜色', function () {
  13. var editor = te.obj[0];
  14. var range = te.obj[1];
  15. // var editor = te.obj[2];
  16. // var div = document.body.appendChild( document.createElement( 'div' ) );
  17. // $( div ).css( 'width', '500px' ).css( 'height', '500px' ).css( 'border', '1px solid #ccc' );
  18. // editor.render(div);
  19. // stop();
  20. // setTimeout(function(){
  21. // var range = new baidu.editor.dom.Range( te.obj[2].document );
  22. editor.setContent('<a href="http://www.baidu.com/">baidu</a>');
  23. range.selectNode(editor.body.firstChild).select();
  24. editor.execCommand( 'forecolor', 'rgb(255,0,0)' );
  25. var html = '<a href="http://www.baidu.com/" _href=\"http://www.baidu.com/\" style="color: rgb(255, 0, 0); text-decoration: underline;"><span style="color: rgb(255, 0, 0);">baidu</span></a>';
  26. ua.checkHTMLSameStyle( html, editor.document, editor.body.firstChild, '查看加了颜色后超链接的样式' );
  27. editor.execCommand( 'removeformat' );
  28. var cl = ua.browser.ie && ua.browser.ie == 8 ? 'class=\"\"' : "";
  29. html = '<a href="http://www.baidu.com/" _href=\"http://www.baidu.com/\">baidu</a>';
  30. if(!ua.browser.ie)//TODO 1.2.6
  31. ua.checkHTMLSameStyle( html, editor.document, editor.body.firstChild, '查看清除样式后超链接的样式' );
  32. // div.parentNode.removeChild(div);
  33. // start();
  34. // },500);
  35. } );
  36. test( '清除颜色的区域有多个inline元素嵌套', function () {
  37. var editor = te.obj[0];
  38. var range = te.obj[1];
  39. var body = editor.body;
  40. editor.setContent( '<p><em><strong>hello1</strong></em></p><p><strong><em>hello2</em></strong></p>' );
  41. var strs = body.getElementsByTagName( 'strong' );
  42. range.setStart( strs[0].firstChild, 2 ).setEnd( strs[1].firstChild.firstChild, 3 ).select();
  43. editor.execCommand( 'removeformat' );
  44. equal( ua.getChildHTML( body ), '<p><em><strong>he</strong></em>llo1</p><p>hel<strong><em>lo2</em></strong></p>' );
  45. } );
  46. test( '指定删除某一个style', function () {
  47. var editor = te.obj[0];
  48. var range = te.obj[1];
  49. var body = editor.body;
  50. editor.setContent( '<p><span style="color:red;font-size: 18px"><em><strong>hello1</strong></em></span></p><p><strong><span style="color:red;font-size: 18px">hello2</span></strong></p>' );
  51. var strs = body.getElementsByTagName( 'strong' );
  52. range.setStart( strs[0].firstChild, 2 ).setEnd( strs[1].firstChild.firstChild, 3 ).select();
  53. /*只删除span的color style*/
  54. editor.execCommand( 'removeformat', 'span', 'color' );
  55. var html = '<p><span style="color:red;font-size: 18px"><em><strong>he</strong></em></span><span style="font-size: 18px"><em><strong>llo1</strong></em></span></p><p><strong><span style="font-size: 18px">hel</span></strong><strong><span style="color:red;font-size: 18px">lo2</span></strong></p>';
  56. ua.checkHTMLSameStyle( html, editor.document, body, '检查去除特定标签的样式的结果' );
  57. } );
  58. test( '指定删除的元素删除属性后是空元素', function () {
  59. var editor = te.obj[0];
  60. var range = te.obj[1];
  61. var body = editor.body;
  62. editor.setContent( '<p><span style="color:blue;"></span>hello2<span style="color:red;font-size: 12px"></span></p>' );
  63. range.setStart( body.firstChild, 0 ).collapse( 1 ).select();
  64. editor.execCommand( 'removeformat', 'span', 'color' );
  65. ua.checkHTMLSameStyle('hello2<span style="font-size: 12px"></span>',editor.document,body.firstChild,'清除span corlor');
  66. } );
  67. test( '闭合方式清除样式', function () {
  68. var editor = te.obj[0];
  69. var range = te.obj[1];
  70. var body = editor.body;
  71. editor.setContent( '<p><span><em><strong>hello1</strong></em></span></p><p><strong><em>hello2</em></strong></p>' );
  72. range.setStart( body.firstChild.firstChild, 0 ).collapse( 1 ).select();
  73. editor.execCommand( 'removeformat' );
  74. equal( ua.getChildHTML( body ), '<p>hello1</p><p><strong><em>hello2</em></strong></p>' );
  75. } );
  76. //TODO 1.2.6 fixed in future
  77. //test( 'trace 3294:移除表格中的样式', function () {
  78. // var editor = te.obj[0];
  79. // var range = te.obj[1];
  80. // editor.setContent( '<table><tbody><tr><td><span>表格文本1</span></td><td><em>表格文本2</em></td></tr></tbody></table>' );
  81. // var trs = editor.body.firstChild.getElementsByTagName( 'tr' );
  82. // var ut = editor.getUETable(editor.body.firstChild);
  83. // var cellsRange = ut.getCellsRange(trs[0].cells[0],trs[0].cells[1]);
  84. // ut.setSelected(cellsRange);
  85. // range.setStart( trs[0].cells[0], 0 ).collapse( true ).select();
  86. // editor.execCommand( 'removeformat' );
  87. // equal( ua.getChildHTML( trs[0].cells[0] ), '表格文本1', '第一个表格的span被清除了' );
  88. // equal( ua.getChildHTML( trs[0].cells[1] ), '表格文本2', '第二个表格的span被清除了' );
  89. //} );