强制点击<img/>标记以选择换行<a> tag</a>

时间:2012-03-25 19:27:06

标签: javascript html image hyperlink dojo

这是在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>

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

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


更新

这更像是一个dojo api问题。看看这个问题/答案给了我做我需要的基本工具:

How can i add event listener to the content of dojo editor?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这有效:

_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]);
  }
}

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