在不修改标记的情况下突出显示文本框中的文本

时间:2012-09-11 20:22:16

标签: google-chrome-extension firefox-addon highlighting

我想知道是否有可能为浏览器编写扩展名来改变文本的颜色,或者在不修改标记的情况下对其进行转换(下划线,粗体等)。

举个例子:

HTML

<p>Extensions use JS, and have to modify the DOM<p>

默认渲染

扩展使用JS,并且必须修改DOM

所需的渲染

扩展使用JS, 来修改DOM

现在,我知道Extensions可以修改DOM,并获得我想要的东西,我可以得到类似的东西:

<p>Extensions use JS, and <html:span style="font-weight: bold; font-style: italic;">have</html:span> to modify the DOM</p>

所以,我要做的就是不要改变标记。这类似于在页面上进行“查找”时获得的“突出显示全部”功能。

当前解决方案

我找到了一个适合我问题的可行解决方案: It's All Text!

虽然我仍希望原生浏览器突出显示,而不修改标记,但这样做会很好。

2 个答案:

答案 0 :(得分:0)

您可以注入CSS以使现有标记的行为不同(例如,p { font-weight:bold; }加粗所有<p>元素,或.foo { background-color: green }以更改foo类的所有元素,等),但几乎肯定没有扩展级别的方式来实现你想要的。如果要修改页面上的任意文本,则必须修改页面的标记。

执行所需操作的唯一方法是破解一些低级代码并实际重写WebKit和Gecko的部分内容,以便HTML的呈现方式与应有的不同。

答案 1 :(得分:0)

我找到了一个适合我问题的可行解决方案: It's All Text!

虽然我仍希望原生浏览器突出显示,而不修改标记,但这样做会很好。

这会将其从页面中拖出,进入编辑器并同步它们。工作得很漂亮。