-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtail.js
60 lines (51 loc) · 1.95 KB
/
tail.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
var tail_source_tab = null;
var tail_source_interval = 0;
var tail_read_position = 0;
var tail_current_text = null;
var tail_display_lock = false;
chrome.browserAction.onClicked.addListener(function(tab){
if( tail_source_tab === null && tab.url.indexOf('file://') == 0){
tail_source_tab = tab;
chrome.browserAction.setIcon({path:"images/icon-active.png"});
tail_source_interval = setInterval(checkFile,500);
}else{
chrome.browserAction.setIcon({path:"images/icon-inactive.png"});
clearInterval(tail_source_interval);
tail_source_tab = null;
}
})
function checkFile(){
if( tail_source_tab == null ){
return;
}
chrome.tabs.reload(tail_source_tab.id)
chrome.tabs.executeScript(tail_source_tab.id, {code:'document.body.innerText'}, function(result){
if( tail_display_lock == true ){
return;
}
if( tail_current_text !== null ){
tail_current_text = result[0].substr(tail_read_position);
}else{
tail_current_text = '';
}
tail_read_position = result[0].length;
if( tail_current_text == '' ){
return;
}
chrome.windows.getAll(function(windows){
for( var i = 0; i < windows.length; i++ ){
chrome.tabs.getAllInWindow(window.id, function(tabs){
for( var j = 0; j < tabs.length; j++ ){
if( tabs[j].url.indexOf('file') == 0 || tabs[j].url.indexOf('http') == 0 ){
if( tail_current_text != '' ){
chrome.tabs.executeScript(tabs[j].id, {code:'console.log("%c" + decodeURIComponent("' + encodeURIComponent(tail_current_text) + '"), "color:#238C00;font-weight:bold;");'});
}
}
}
tail_current_text = '';
tail_display_lock = false;
})
}
})
});
}