2013-10-11 118 views
1

修改頁面的DOM我試圖創建一個包含以下功能的瀏覽器擴展程序:通過鍍鉻extentsion

1當某個域的用戶訪問頁面此擴展將刪除一些延遲性肌肉痠痛的頁面。

2檢查所有圖像的大小,如果其中一個圖像的大小大於指定的大小,則該圖像將被設置爲指定的大小,當用戶單擊它時,圖像將調整到其原始大小。

現在,這是我做了什麼:

"content_scripts": [ 
    { 
     "matches": ["http://*.xx.com/*"], 
     "js": ["res/js/jquery-2.0.3.min.js", "res/js/inject.js"], 
     "run_at": "document_end" 
    } 
] 

inject.js:

$(document).ready(function() { 
    $("xxx").remove(); 
    $("img").each(....); 
}); 

但是我遇到了一些問題:

1 jQuery庫在當地被稱爲是有任何想法從CDN源加載jquery?

2在頁面完全加載之前需要很長時間,這意味着要刪除的內容將長時間保持可見。

3頁面使用類似twitter的佈局,當用戶滾動頁面時,會加載更多內容。所以問題出現了。

我的inject.js將在頁面加載完成後運行,所有已加載的圖像都將被處理。但是當更多的內容被加載時,新加載的圖像將不會被處理。

所以我不知道是否有一些事件像element_rendered我可以捕獲?如果是的話,我可以這樣做我的工作:

xxx.events.addListener('element_rendered',function(ele){ 
    if(shouldRemvoed(ele)){ 
     //remvoe it. 
    } else if(isImg){ 
     //check size...... 
    } 
}); 

這是可能的,或者是否有替代做我的工作?

回答

0

1本地引用jquery庫,有沒有想法從CDN源加載 jquery?

不,不是在Chrome擴展

2它需要很長的時間完全加載的頁面,這意味着內容是>刪除將保持可見的很長一段時間了。

3頁面使用類似twitter的佈局,當用戶滾動頁面時,更多的內容將被加載。所以問題出現了。

您可以使用MutationObserver來跟蹤DOM上的更改。