2012-05-01 107 views
-2

我正在考虑制作某种基于浏览器的插件,也许是为了使文字在引号之间加粗。我想知道,这是可能做到的,我需要研究什么才能做到这一点?在网页上粗体显示文字

感谢

+2

有很多词像想和可能。我想你应该想想你想做什么,当你知道的时候再问一次。 – Manuel

+0

我想为浏览器添加一个插件,使文本在引号之间加粗。这是可能的,我需要研究什么? – Biscuit128

+0

我认为这是可能的通过JS代码注入每个页面加载。 – Manuel

回答

1

第一:是的,它是可能的。请看Chrome ExtensionsContent Scripts。对于这个问题,我认为内容脚本应该是您正在寻找的解决方案。

要打开文本粗体,只需查看RegExp即可在HTML文本(而不是整个HTML!)中找到引号以及其中包含的文本,然后将其包装在强标记中。 要找到文本,您可以在jQuery .text()方法的帮助下提取文本。

简单的实体模型,用于替换脚本是: $(body).text().replace(/"([^"]*)"/mg, '"<strong>$1</strong>"')

你可以建立这个样本,如果你决定.. 虽然你还是要小心,不要更换script标签内的任何文字。

虽然这个简单的脚本,你没有扩展,但简单的user script。我不认为有需要扩展..

+0

UserScript被转换为扩展名。用RegEx解析HTML是一个坏主意。 –

+0

@RobW好了,UserScript被转换了,但是从开发者(代码编写器的角度),它更容易编写,不需要清单文件和其他需要的文件,只需简单的JS文件即可。 为什么RegEx不好主意?引用查找可能有点棘手,但我不是故意简单地用HTML标签包装所有引号。我将修复我的回答 – enoyhs

+0

建议的方法破坏了布局,因为'.text()'返回文本* 0不带HTML标签*。即使'.text()'改变为'.html()',''也会导致问题。 –

0

最复杂的部分可能是如何定义你会看作引号和你如何认识他们。有几十种不同的引用以不同的方式使用,例如右引号双引号(?)是某些语言的开头引号,其他一些语言的引号,以及开头和结尾用几种语言。此外,这个角色经常被用作不表示任何类型的引用,而是作为一个箭头符号。

我不知道你为什么要在引号之间加粗文本,但如果是为某些类型的高亮显示,那么使用独特的背景颜色可能会更好。 Bolding可能会增加文本的宽度要求,通常不会太多,但许多网页具有像素精确的布局,如果单词的宽度稍微增加几个像素,则可能会碎成碎片。

0
$(".boldAllQuotationMarks").each(function() { 
     $(this).html($(this).html().replace(/"([^"]*)"/mg, '"<strong style="color:#333">$1</strong>"')); 
    }); 
+0

如果你解释了它的工作原理,这将是一个更好的答案。另外,是否有可能打破第二条线,使其不水平滚动? –

+0

我不明白你? 你能解释一下吗? –

相关问题