我正在尝试完成一个浏览器插件,它将分析文本并以某种方式标记它。
基本上, 让我们说你的浏览,你会看到你的页面中的某个地方出现了这个文字。
<p>and then Tom Cruise, devoured the planet.</p>
该插件正在扫描文本,并会找到“汤姆克鲁斯”。在我的服务器上通过吐出的AJAX进行了moused并返回一个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>
虽然快速搜索让我得出的结论是,“互联网”会跟随干草叉而来,但我应该这样做。
是否有其他方法可以标记自定义标记的内嵌文本创建?
答案 0 :(得分:1)
实际上无法保证<fhwdgads>
永远不会被识别为具有某些特殊语义或格式的标记。如果你使用非常混乱的标签名称可能不太可能,但是,你真的吗?人们在发明标签时倾向于使用助记符名称,然后在某些当前或未来的规范或浏览器中存在与标签冲突的真实机会。
此外,一些旧版本的IE完全忽略了无法识别的标签,例如不要让你设计它们。但是,对于每个标记名称,可以使用document.createElement()
一次来避免这种情况。
在实践中使用span
或div
同样安全。默认情况下,没有理由认为浏览器有一些奇特的格式。就像我们不停止使用h1
一样,即使理论上它可能会使内容变得粉红和闪烁。如果你希望浏览器供应商完全疯狂,那就不可能万无一失。
使用类是另一回事,但仅限于其他样式表使用与您相同的类名。您可能需要在其他作者样式表干扰您的环境中工作。但这只是要求谨慎;它不会使span
或div
元素与类错误的工具。
答案 1 :(得分:0)
您可以改用<DIV>
标签。根据我的“经验”,div元素几乎可以在html层次结构中的任何位置(在<body>
内部而不在输入标记内)。您必须注意默认样式。
答案 2 :(得分:0)
我认为使用自定义html标签并不是一个糟糕的方法。当然,我不能保证您在开发插件时没有任何相关的技术问题。但Facebook做了:http://developers.facebook.com/docs/reference/fbml/
我不知道为什么它已被删除。
您还可以添加特殊的名称空间扩展名(如fb:for Facebook)。 Web 2.0支持数据表示和用户定义标记的独立性:http://en.wikipedia.org/wiki/Web_2.0#Concepts
答案 3 :(得分:0)
解决方案是定义一个CSS类,它首先重置所有样式属性,这样你就可以从一个干净的平板开始。
另一种解决方案是使用经常不常用的标记,例如del
,ins
和blockquote