2009-10-26 68 views
3

我想在任何HTML頁面顯示之前隱藏任何匹配模式的文本。在顯示任何HTML頁面之前替換一些文本

我想類似的東西用的Greasemonkey:

var html = document.body.innerHTML; 
html = html.replace(/some pattern/g, '???'); 
document.body.innerHTML = html; 

我想隱藏與「???」正確替換的文本,但對於一個短暫的時刻,而加載頁面時,我可以看到原文。正如crescentfresh所說,它不能用Greasemonkey修復。

我知道我可以使用像Proximodo這樣的代理來解決它,但我更願意避免必須安裝它。

要知道它必須在Firefox上工作,最簡單的方法是什麼?

對於那些有興趣的人,我想用它來隱藏我女朋友電腦上任何頁面的價格,讓她選擇一件禮物。

+7

運行* *後的DOM已經加載Greasemonkey腳本的禮物,並準備進行交互用;這是它的本質。考慮到您正在執行'document.body.innerHTML = ...'(導致極其昂貴的重繪操作),閃爍是不可避免的。 – 2009-10-26 15:07:17

+0

@crescentfresh - 你應該做出實際的答案。我會贊成它。 – Matt 2009-10-26 15:08:04

+0

似乎我將不得不安裝Poximodo ... – Jazz 2009-10-26 15:10:23

回答

1

有了擴展,你可以做到這一點。

我不記得確切,但可能LiveHttpHeaders捕獲瀏覽器中的http流量,使您可以刪除你想要的。另外,如果不是等待整個頁面加載,而是將其替換爲DOMNodeInserted事件,那麼實際內容可能會顯示得不夠快。

此外,如果你以前從未做過Firefox擴展,請不要驚慌!甚至有一個greasemonkey extension compiler這個骯髒的工作,並給你一個良好的基礎開始。我會這樣做,然後尋找一個window.onload事件,並在那裏,而不是greasemonkey代碼,將一個DOMNodeInserted事件附加到文檔中。

而且也還(第四編輯!),她真正想要的是,你看她的腦海裏,並挑選自己想要的XD

+0

我會盡力爲此做出自己的擴展。如果只有我能夠延長閱讀她的想法! – Jazz 2009-10-26 17:36:56

相關問題