强制点击<img>标记以选择包装<a>标签

Force click on <img> tag to select wrapping <a> tag

本文关键字:gt lt 包装 选择 标签 img      更新时间:2023-09-26

这是在Dojo编辑器的上下文中,但它应该更通用。

我有一个<img>标签,它被包裹在<a>标签中:

<a><img width="146" height="109" src="/gaggleVideoProxy.do?op=thumb&amp;thumbUrl=http://i.ytimg.com/vi/xoZXdWl7BZs/default.jpg" _djrealurl="/gaggleVideoProxy.do?op=thumb&amp;thumbUrl=http://i.ytimg.com/vi/xoZXdWl7BZs/default.jpg" &ytvideoid="xoZXdWl7BZs&amp;userVideoId=1073344&quot;"></a>

如果单击此项,则会选择图像。单击删除键将删除图像,但保留链接标记。

我正在寻找一种方法来确保每当删除<img>标记时都会删除<a>标记。


更新

这更像是一个dojoapi问题。看看这个SO问题/答案,我得到了做我需要的事情的基本工具:

如何将事件监听器添加到dojo编辑器的内容中?

不要删除图像,而是删除图像的父节点。

这是有效的:

_connectTagEvents: function(){
    this.editor.onLoadDeferred.addCallback(dojo.hitch(this, function(){
  this.connect(this.editor.editNode, "onclick", this._onClick);
    }));
},
_onClick: function(e){
  var target = e.target;
  var tag = target.tagName ? target.tagName.toLowerCase() : "";
  var wrapper = target.parentNode;
  if(/* TAG and/or WRAPPER are what you want*/) {        
    dojo.withGlobal(this.editor.window, "selectElement", dijit._editor.selection, [wrapper]);
  }
}

这将强制选择包装元素。(不要忘记从initButton()方法调用_connectTagEvents