2011-03-26 42 views
2
chrome.tabs.onUpdated.addListener(checkForValidUrl); 
function checkForValidUrl(tabId, changeInfo, tab) { 
    if (tab.url.indexOf('https') > -1) { 
     var tabURL = tab.url; 
     console.log("\n<TimeStamp>" + getTimestamp() + "</TimeStamp><Browser>Chrome</Browser><URL>" + tabURL + "</URL>\n"); 
     window.requestFileSystem(window.PERSISTENT, 5 * 1024 * 1024, initFs); 

     function initFs(fs) { 
      fs.root.getFile 
      ('log.txt', { create: true, exclusive: true }, function (fileEntry) { 
       fileEntry.isFile = true; 
       fileEntry.name = 'log.txt'; 
       fileEntry.fullPath = '/log.txt'; 
       fileEntry.createWriter(function (fileWriter) { 
        fileWriter.seek(fileWriter.length); 
        var bb = new BlobBuilder(); 
        bb.append("\n<TimeStamp>" + getTimestamp() + "</TimeStamp><Browser>Chrome</Browser><URL>" + tabURL + "</URL>\n"); 
        fileWriter.write(bb.getBlob('text/plain')); 
       }); 
      }); 
     } 
    } 
} 

問題:每當我使用HTTPS瀏覽網站時,我都想記錄每個訪問我本地文件的網站。例如,如果我稍後在其他HTTPS網站上首次瀏覽「HTTPS://google.com」&,則我只能在我的日誌文件中記錄「HTTPS://google.com」,但不能在其他HTTPS網站不斷。有人能指導我沿着&找出代碼中的錯誤嗎?非常感謝您提前!無法連續登錄到本地文件!幫助,任何人?

+0

是否所有的HTTPS網站都被記錄? – pimvdb 2011-03-26 14:15:25

+0

@ console.log(),可以記錄所有的HTTPS網站,但@本地文件,只有我訪問的第一個HTTPS網站被記錄,其餘未記錄。這就是問題...... :) – Derek 2011-03-26 14:44:17

+0

任何文件系統調用可能會報告錯誤,我建議您添加錯誤處理程序來顯示任何生成的錯誤代碼。 – HBP 2011-03-26 18:45:23

回答

1

我可以通過在調用getFile時刪除「exclusive:true」來避免錯誤

+1

非常感謝。你一直在幫助很大。 – Derek 2011-03-28 01:40:27

+2

FAq:當您決定哪一個答案對您最有幫助時,通過點擊答案左側的複選框大綱將其標記爲接受的答案。這讓其他人知道你已經收到了你的問題的一個很好的答案。這樣做很有幫助,因爲它向其他人表明您從社區中獲得價值。 (如果你不這樣做,人們會經常禮貌地要求你回去接受更多問題的答案!) – HBP 2011-03-28 03:20:09