内容工具添加图像和视频后自动添加标签p

时间:2016-08-22 08:35:04

标签: javascript

Content tools

添加图片和视频后需要在图片和视频后自动添加标签p(仅当表格在最后时才是这样), 如何实施? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我建议在应用工具时使用事件来捕获,然后应用您所追求的特定行为。

目前没有很好的方法来访问这些事件(我将在未来的版本中展望)但是在此期间,这里有一个解决方法,它为您提供了您所追求的行为,应该相对简单地应用于任何工具:< / p>

// Override the behaviour of the `ToolboxUI.tools` method so that we can
// bind to the applied event for the tools of interest.
var superTools = ContentTools.ToolboxUI.prototype.tools;
ContentTools.ToolboxUI.prototype.tools = function (tools) {
  superTools.call(this, tools);

  function _followWithP(ev) {
    var element = ev.detail().element;

    // Find the top level element
    if (element.parent().type() !== 'Region') {
      element = element.closest(function(node) {
        return node.parent().type() === 'Region';
      });
    }

    // Find the newely insert element
    var newElement = element.nextSibling();

    // Check if this is the last item in the region
    var siblings = newElement.parent().children;
    if (newElement === siblings[siblings.length - 1]) {
      // This is the last child so apply add a paragraph
      var p = new ContentEdit.Text('p', {}, '');
      newElement.parent().attach(p);
      p.focus();
    }
  }

  // Modify the applied behaviour of the image, table and video tools to use
  // `_followWithP`.
  this._toolUIs['image'].addEventListener('applied', _followWithP);
  this._toolUIs['table'].addEventListener('applied', _followWithP);
  this._toolUIs['video'].addEventListener('applied', _followWithP);
}