2016-02-27 77 views
2

時候我想要什麼: 我的建議是檢查在頁面中添加新的內容(我沒有自己),所以我正在考慮製作一個腳本,用於保存在Cookie中添加的最後一個內容,並且每分鐘刷新頁面:如果Cookie與添加的最後一個內容不匹配,那就意味着有新內容,我會收到通知。Chrome擴展刷新每分鐘一個網頁和運行(JavaScript)的腳本每次刷新

讓我們嘗試用

main_file:

include: functions.js; 

cookie last_content_added= get_first_paragraph(); 

//Refresh script 
do (every_minute){ 
page_reload(); 
} 
when.page.reload.complete { 
run script_check_content 
} 

functions.js

script_check_content{ 
var content_check = get_first_paragraph(); 

if (content_check == cookie[last_content_added]) 
{ 
//do nothing 
} 
else{ 
//new content was added 
play.notification.mp3 

cookie[last_content.added] = get_first_paragraph(); 
} 

} 

我是在簡單的解決方案沒有考慮什麼我米尋找?

我是新的鉻擴展,如果你可以分開不同的文件中的代碼,如它是一個真正的擴展,我會很感激非常很多。

回答

0

看看MutationObserver,它提供了一種對DOM中的變化作出反應的方法。您可以提供回調來響應DOM更改,而不需要使用計時器。

1

我建議使用'chrome.tabs.query',如果沒有指定屬性,可以使用此選項獲取所有具有指定屬性的選項卡或所有選項卡,並且將JavaScript代碼注入到調用'window.location.reload()的頁面中。刷新頁面。

下面是一個示例代碼來獲取當前選項卡,並使用chrome.tab方法重新加載它:

chrome.tabs.query({active: false, currentWindow: true}, function (arrayOfTabs) { 
var code = 'window.location.reload();'; 
chrome.tabs.executeScript(arrayOfTabs[0].id, {code: code}); 
}); 

此外,包括「onCompleted」聽衆聽的時候它是完全加載和初始化。 chrome.webNavigation.onCompleted.addListener(function callback)

+0

即使選項卡不是當前「活動」,是否有辦法做到這一點? – xickoh

+1

是的,將'active'設置爲false。 –