在TinyMCE插入的标题上自动生成id

时间:2012-11-04 22:31:32

标签: javascript ruby-on-rails ruby tinymce nokogiri

TinyMCE中的默认行为是创建标题:

<h1>My heading text!</h1>

我们目前正在为使用TinyMCE的应用构建目录宏。我希望生成的标头包含随机ID,以便我们可以从生成的目录中轻松链接到它们。

有没有办法让我无法自定义TinyMCE如何为标题生成HTML,以便我可以为每个标题添加一个ID?

2 个答案:

答案 0 :(得分:1)

我最终决定使用Nokogiri来做这个服务器端。 TinyMCE生成的标题正在被xpath查询迭代,我就是这样设置id。

doc.xpath(%w(h1 h2 h3 h4 h6).map { |h| Nokogiri::CSS.xpath_for("body #{h}") }.join("|")).each do |node|
  node['id'] = to_anchor(node.content)
end

答案 1 :(得分:0)

编辑:抓一下我之前说的话,看起来这就是你想要的:

tinyMCE.activeEditor.dom.addClass(tinyMCE.activeEditor.dom.select('h1'), 'myClass');

原谅我对tinyMCE的不熟悉,我不确定你是否需要在调用之前创建/选择一个“活动”编辑器(我会这么认为),但我敢打赌你可以想出那部分:)