2012-05-01 110 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

我不明白你? 你能解釋一下嗎? –

相關問題