2

我正在尝试完成一个浏览器插件,它将分析文本并以某种方式对其进行标记。

基本上,假设您的浏览,您会在页面的某处看到此文本。

<p>and then Tom Cruise, devoured the planet.</p>

该插件正在扫描文本并将找到“汤姆克鲁斯”。一旦鼠标悬停在我的服务器上吐出 AJAX 并返回一个 HTML 页面,将显示在工具提示中。

我最初是这样标记的

<p>and then <span class="ajax subtleShadow">Tom Cruise</span>, devoured the planet.</p>

虽然我发现这可能会出错,但如果网页具有奇怪的跨度 css 或者它嵌套在具有奇怪事物(如边框)​​的跨度中。

我的解决方案是发明一个新的 html 标签。像这样...

<p>and then <fhwdgads class="ajax subtleShadow">Tom Cruise</fhwdgads>, devoured the planet.</p>

虽然快速搜索让我得出结论,如果我这样做,“互联网”会用干草叉追随我。

是否有另一种方法来标记自定义标签的内联文本创建?

编辑:链接到嵌套跨度中损坏按钮的视图。

4

4 回答 4

1

确实不能保证<fhwdgads>永远不会被识别为具有某些特殊语义或格式的标签。如果您使用非常混乱的标签名称,这可能是不可能的,但您真的会吗?人们在发明标签时倾向于使用助记名称,然后在某些当前或未来的规范或浏览器中很有可能与标签发生冲突。

此外,一些旧版本的 IE 完全忽略了无法识别的标签,例如,不让您设置它们的样式。不过,这可以避免document.createElement()为每个标签名称使用一次。

在实践中使用spanordiv是安全的。没有理由认为浏览器默认有一些花哨的格式。就像我们不会停止使用一样,h1即使理论上它可能会使内容变成粉红色并闪烁。如果您期望浏览器供应商完全疯了,就不可能万无一失。

使用类是另一回事,尽管只是在其他样式表使用与您相同的类名的意义上。您可能需要在其他作者样式表干扰您的环境中工作。但这只是需要谨慎。它不会使带有类的spanordiv元素成为错误的工具。

于 2012-11-05T10:40:39.653 回答
0

您可以改用<DIV>标签。根据我的“经验”, div 元素几乎可以在 html 层次结构中的任何位置(在输入标签内部<body>而不是在输入标签内部)出现。不过,您必须注意默认样式。

于 2012-11-05T10:33:59.077 回答
0

我认为使用自定义 html 标签并不是一个坏方法。当然,我不能保证您在开发插件时没有任何相关的技术问题。但 Facebook 做到了:http: //developers.facebook.com/docs/reference/fbml/

我不知道为什么它被删除了。

您还可以添加您的特殊命名空间扩展(如 fb: 用于 Facebook)。Web 2.0 支持数据表示和用户定义标签的独立性:http ://en.wikipedia.org/wiki/Web_2.0#Concepts

于 2012-11-05T10:35:09.933 回答
0

一个解决方案是定义一个 CSS 类,它首先重置所有样式属性,这样您就可以从头开始。

另一种解决方案是使用不经常使用的标签,例如del,insblockquote

于 2012-11-05T10:35:39.520 回答