module('plugins.elementpath'); /*
  • 表格
  • 列表
  • 文本
  • 图片
  • 超链接
  • 加粗加斜
  • 下划线,删除线 * */ //1.2的版本中,表格的外面会自动套一个带格式的div test('表格', function () { var div = document.body.appendChild(document.createElement('div')); div.id = 'ue'; var editor = UE.getEditor('ue', {'initialContent': '

    欢迎使用ueditor

    ', 'elementPathEnabled': true, 'autoFloatEnabled': false}); editor.ready(function () { var range = new baidu.editor.dom.Range(editor.document); editor.setContent('
    hello1strongTexthello2spanText
    '); var body = editor.body; /*选中整个表格*/ range.selectNode(body.firstChild).select(); var eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'table', 'tbody', 'tr', 'td'], '选中整个表格'); /*在单元格中单击*/ var tds = body.getElementsByTagName('td'); range.setStart(tds[0].firstChild, 0).collapse(true).select(); ua.checkElementPath(eles, ['body', 'table', 'tbody', 'tr', 'td'], '在单元格中单击'); /*在单元格中的加粗文本中单击*/ ua.manualDeleteFillData(editor.body); range.setStart(tds[1].firstChild.firstChild, 1).collapse(true).select(); eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'table', 'tbody', 'tr', 'td', 'strong'], '在单元格中的加粗文本中单击'); /*在单元格中的下划线文本中单击*/ ua.manualDeleteFillData(editor.body); range.setStart(tds[1].lastChild.firstChild, 1).collapse(true).select(); eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'table', 'tbody', 'tr', 'td', 'span'], '在单元格中的下划线文本中单击'); /*选中有下划线的文本*/ ua.manualDeleteFillData(editor.body); range.setStart(tds[1].lastChild.lastChild, 1).setEnd(tds[1].lastChild.lastChild, 4).select(); eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'table', 'tbody', 'tr', 'td', 'span'], '选中有下划线的文本'); setTimeout(function(){ UE.delEditor('ue'); te.dom.push(document.getElementById('ue')); start(); },200); }); stop(); }); test(' 通过选区路径取range', function () { var editor = te.obj[0]; var range = te.obj[1]; editor.options.elementPathEnabled = true; editor.setContent('
    12
    345
    '); stop(); setTimeout(function () { var tds = editor.body.getElementsByTagName('td'); var trs = editor.body.getElementsByTagName('tr'); var tbodys = editor.body.getElementsByTagName('tbody'); var table = editor.body.getElementsByTagName('table'); range.setStart(tds[3].firstChild, 0).collapse(true).select(); editor.queryCommandValue('elementpath'); editor.execCommand('elementpath', '4'); setTimeout(function () { range = editor.selection.getRange(); if (ua.browser.gecko||ua.browser.webkit) { ua.checkResult(range, trs[1], trs[1], 1, 2, false, '取range--td'); } else { if (ua.browser.ie) ua.checkResult(range, tds[3].firstChild, tds[3].lastChild, 0, 2, false, '取range--td'); else ua.checkResult(range, tds[3].firstChild, editor.body, 0, 1, false, '取range--td'); } range.setStart(tds[3].firstChild, 1).collapse(1).select(); editor.execCommand('elementpath', '3'); setTimeout(function () { range = editor.selection.getRange(); if (ua.browser.gecko||ua.browser.webkit) { ua.checkResult(range, tbodys[0], tbodys[0], 1, 2, false, '取range--tr'); } else { if (ua.browser.ie) ua.checkResult(range, tds[2].firstChild, tds[3].lastChild, 0, 2, false, '取range--tr'); else ua.checkResult(range, tds[2].firstChild, editor.body, 0, 1, false, '取range--tr'); } range.setStart(tds[3].firstChild, 0).collapse(1).select(); editor.execCommand('elementpath', '2'); setTimeout(function () { range = editor.selection.getRange(); if (ua.browser.gecko||ua.browser.webkit) { ua.checkResult(range, table[0], table[0], 0, 1, false, '取range--tbody'); } else { if (ua.browser.ie) ua.checkResult(range, tds[0].firstChild, tds[3].lastChild, 0, 2, false, '取range--tbody'); else ua.checkResult(range, editor.body, editor.body, 0, 1, false, '取range--tbody'); } editor.setContent('

    45645

    '); range.selectNode(editor.body.firstChild).select(); editor.queryCommandValue('elementpath'); editor.execCommand('elementpath', 1); setTimeout(function () { range = editor.selection.getRange(); var p = editor.body.firstChild; if (ua.browser.gecko||ua.browser.webkit) { ua.checkResult(range, editor.body, editor.body, 0, 1, false, '取range--p'); } else { ua.checkResult(range, p.firstChild, p.firstChild, 0, 5, false, '取range--p'); } start(); }, 20); }, 20); }, 100); }, 20); }, 50); }); test('trace 1539:列表', function () { var div = document.body.appendChild(document.createElement('div')); var editor = new baidu.editor.Editor({'initialContent': '

    欢迎使用ueditor

    ', 'elementPathEnabled': true, 'autoFloatEnabled': false}); stop(); setTimeout(function () { editor.render(div); editor.ready(function () { var range = new baidu.editor.dom.Range(editor.document); editor.setContent('
    1. hello1
    2. hello2
      hello3
    '); var body = editor.body; /*选中所有列表*/ range.selectNode(body.firstChild).select(); var eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'ol', 'li', 'p'], '选中整个列表'); /*选中列表中的表格*/ range.selectNode(body.firstChild.getElementsByTagName('table')[0]).select(); eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'ol', 'li', 'table', 'tbody', 'tr', 'td'], '选中列表中的表格'); /*选中列表中的br*/ range.setStart(body.firstChild.firstChild.nextSibling.firstChild.firstChild, 6).collapse(true).select(); eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'ol', 'li', 'p'], '选中列表中的br'); div.parentNode.removeChild(div); start(); }); }, 20); }); test('文本和超链接', function () { var div = document.body.appendChild(document.createElement('div')); var editor = new baidu.editor.Editor({'initialContent': '

    欢迎使用ueditor

    ', 'elementPathEnabled': true, 'autoFloatEnabled': false}); editor.render(div); stop(); editor.ready(function () { var range = new baidu.editor.dom.Range(editor.document); editor.setContent('

    helloa_link

    '); var body = editor.body; /*选中文本hello*/ range.selectNode(body.firstChild.firstChild).select(); var eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'p'], '选中文本'); /*选中超链接*/ range.selectNode(body.firstChild.lastChild.firstChild).select(); eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'p', 'a'], '选中文本'); div.parentNode.removeChild(div); start(); }); }); //在版本1.2中,如果没有setTimeout在FF(3.6和9都是)中range会出错,其他浏览器没问题 test('图片', function () { if(ua.browser.ie>8)return;//todo 1.3.6 #3847 var div = document.body.appendChild(document.createElement('div')); div.id = "ue"; var editor = UE.getEditor("ue",{'initialContent': '

    欢迎使用ueditor

    ', 'elementPathEnabled': true, 'autoFloatEnabled': false}); stop(); editor.ready(function () { var range = new baidu.editor.dom.Range(editor.document); editor.setContent('

    hello

    '); var body = editor.body; /*选中图片*/ setTimeout(function () { range.selectNode(body.firstChild.lastChild).select(); var eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'p', 'img'], '选中图片'); setTimeout(function () { UE.delEditor('ue'); te.dom.push(document.getElementById('ue')); start(); }, 200); }, 20) }); }); test('锚点', function () { if(ua.browser.ie>8)return;//todo 1.3.6 #3847 var div = document.body.appendChild(document.createElement('div')); var editor = new baidu.editor.Editor({'initialContent': '

    欢迎使用ueditor

    ', 'elementPathEnabled': true, 'autoFloatEnabled': false}); editor.render(div); stop(); editor.ready(function () { var range = new baidu.editor.dom.Range(editor.document); editor.setContent('

    hello

    '); var body = editor.body; /*选中图片*/ setTimeout(function () { range.selectNode(body.firstChild.lastChild).select(); var eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'p', 'anchor'], '选中锚点'); div.parentNode.removeChild(div); start(); }, 20) }); }); test('文本', function () { var div = document.body.appendChild(document.createElement('div')); var editor = new baidu.editor.Editor({'initialContent': '

    欢迎使用ueditor

    ', 'elementPathEnabled': true, 'autoFloatEnabled': false}); editor.render(div); stop(); editor.ready(function () { var range = new baidu.editor.dom.Range(editor.document); editor.setContent('hello'); var body = editor.body; /*选中图片*/ setTimeout(function () { range.setStart(body.firstChild.firstChild, 1).setEnd(body.firstChild.firstChild, 3).select(); var eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'p'], '选中文本'); div.parentNode.removeChild(div); start(); }, 20) }); }); test('trace 3995表格和文本', function () { if(ua.browser.ie==11)return;//todo dev1.4.0 var div = document.body.appendChild(document.createElement('div')); var editor = new baidu.editor.Editor({'initialContent': '

    欢迎使用ueditor

    ', 'elementPathEnabled': true, 'autoFloatEnabled': false}); editor.render(div); stop(); editor.ready(function () { var range = new baidu.editor.dom.Range(editor.document); var body = editor.body; range.setStart(body.firstChild.firstChild, 2).collapse(true).select(); editor.execCommand('inserttable'); /*选中图片*/ setTimeout(function () { range.selectNode(body).select(); var eles = editor.queryCommandValue('elementpath'); editor.execCommand('elementpath', 1); ua.checkElementPath(eles, ['body', 'p'], '选中文本和表格'); range.selectNode(body.firstChild.nextSibling).select(); eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'table'], '选中表格'); editor.execCommand('elementpath', 4); eles = editor.queryCommandValue('elementpath'); ua.checkElementPath(eles, ['body', 'table', 'tbody', 'tr', 'td'], '选中表格'); div.parentNode.removeChild(div); start(); }, 20); }); });