P标签中基于div的工具提示
|
我正在尝试使用jQueryTools对来自CMS(Alterian)的内容实施工具提示功能。这个想法是,编辑者在文本中要使用工具提示的地方用井号和方括号标记单词,即\“#triggerword(工具提示内容)。在请求时,使用正则表达式更改HTML,并在之后插入工具提示div每个触发词,如下所示:
...replace(/#(\\w[\\s\\S]*?)\\(([\\s\\S]*?)\\)/g, \"<span class=\'tipword\'>$1</span><div class=\'tooltip\'>$2</div>\");
在许多情况下,此方法都可以正常工作,但触发词也可能会出现在P标签内。编辑者写他们的文本,这些文本由CMS存储为HTML。我无法控制P标签的使用。将div放在P标签中时,插入div之前,P标签会自动关闭。这当然会破坏文本的布局,并且由于触发词和工具提示div不再相邻,因此工具提示不起作用。
来自CMS的HTML如下所示:
<P>
some text with a #triggerword (it\'s a word that triggers a tooltip to appear)
and the text goes on....
</P>
然后在完成工具提示转换后,DOM读取:
<P>
some text with a <SPAN class=\'tipword\'>triggerword</SPAN>
</P>
<DIV class=\'tooltip\'>it\'s a word that triggers a tooltip to appear</DIV>\");
and the text goes on....
<P></P>
...,布局和工具提示已损坏。
我建议的一种解决方案是将工具提示跨度和div包装在一个对象标签中:
...replace(/#(\\w[\\s\\S]*?)\\(([\\s\\S]*?)\\)/g, \"<object><span class=\'tipword\'>$1</span><div class=\'tooltip\'>$2</div></object>\");
这确实有效!即使在P标签中!对于Firefox和Chrome,但不适用于IE。 IE会更改DOM并将提示词HTML放入object-tag的altHtml-property中:
<object altHtml=\"<span ..... /div>\"/>
我(公司)的用户中有90%以上使用IE,因此我无法忽略该浏览器(就我所希望的那样)。
有人对下一步尝试有建议吗?你们是我的不得已我担心我将不得不忘记漂亮的工具提示div,而是使用标准的浏览器工具提示(标题属性)。
谢谢!
巴特
没有找到相关结果
已邀请:
1 个回复
傻寺俊擒