我正在为TinyMCE4
开发定制的Emoji插件-单击工具栏上的emoji图标时,插件窗口中会出现很大一部分HTML。顶部是粘性div,其中包含指向HTML
块下方的锚点的链接。
这是棍子div:
<div id='thing_to_stick'>
<a href='#smileyspeople'>?</a>
<a href='#animalsnature'>?</a>
<a href='#fooddrink'>?</a>
<a href='#activity'>⚽</a>
<a href='#travelplaces'>?</a>
<a href='#objects'>?</a>
<a href='#symbols'>?</a>
<a href='#flags'>?</a>
</div>
然后在HTML
的更下方,例如:
<table style='background:white;' role='list' border='0' class='mce-grid'>
<tr>
<td style='color:#000; background: yellow; font-family: Arial, Helvetica, sans-serif; border-bottom:1px solid #ccc;' colspan='5'>
<span id='smileyspeople'>Smileys & People</span>
</td>
</tr>
This is a working JSFiddle demo of the plugin。
如果单击表情符号,则它将HTML块插入TinyMCE内容窗口。
但是-在点击锚链接时也会这样做-因此不要下拉至例如#objects
的{{1}} ID块,它将插入此HTML
:
HTML
The JS for the plugin is here。
我认为发生这种情况的原因是因为插件中的JS包含以下内容:
<p><img title="null" src="null" alt="null" width="64" height="64" /></p>
我认为这意味着onclick: function(b) {
var c = a.dom.getParent(b.target, "a");
c && (a.insertContent('<img alt="' + c.getAttribute("data-mce-title") + '" title="' + c.getAttribute("data-mce-title") + '" src="' + c.getAttribute("data-mce-url") + '" width="64" height="64" />'), this.hide())
}
块中的每个超链接都将以相同的方式对待...
我遇到的麻烦是,虽然我可以查看导致此问题的原因,但我想知道是否有解决方法,因此HTML
中的链接被视为普通链接,而其他所有链接链接由JS代码提取。
尽管我找不到在插件中使用它的方法,但是我无法使用div#thing_to_stick
。