2010-05-26 14 views
18

Tôi asked this question before nhưng không làm rõ rằng ý tôi là trong tập lệnh người dùng, không phải trong JavaScript từ trang web. Bây giờ tôi sẽ rõ ràng hơn.Có thể xác định xem Chrome có đang ở chế độ ẩn danh thông qua tập lệnh người dùng không?

Có thể xác định xem Google Chrome có ở chế độ ẩn danh thông qua tập lệnh người dùng (về cơ bản một tập lệnh chạy dưới dạng tiện ích mở rộng trong trình duyệt chứ không phải tập lệnh đang chạy trên trang web)?

+2

tại sao bạn muốn biết điều này? – scunliffe

+0

Tôi đang tìm cách viết và mở rộng đóng tab nếu nó được mở ở chế độ ẩn danh, vì Google đã không cung cấp cách để không hiển thị. – RodeoClown

Trả lời

7

Nếu bạn đang phát triển một mở rộng thì bạn có thể sử dụng API tab để xác định xem một cửa sổ/tab ẩn danh.

Thông tin khác có thể được tìm thấy trên code.google.com.

Nếu bạn chỉ đang làm việc với một trang web hoặc một người dùng, nó không phải là dễ dàng, và nó được thiết kế theo cách đó. Tuy nhiên, tôi đã nhận thấy rằng tất cả các nỗ lực để mở một cơ sở dữ liệu (window.database) thất bại khi trong incongnito, điều này là bởi vì khi trong ẩn danh không có dấu vết của dữ liệu được phép để lại trên máy người dùng.

Tôi chưa thử nghiệm nhưng tôi nghi ngờ tất cả các lệnh gọi đến localStorage cũng không thành công.

+1

[localStorage hoạt động, nhưng các giá trị sẽ bị hủy khi phiên riêng kết thúc] (http://htmlui.com/blog/2011-08-23-5-obscure-facts-about-html5-localstorage.html). Vì vậy, đó sẽ không phải là một phương pháp phát hiện hiệu quả cho phiên hiện tại. –

+1

localStorage hoạt động như sessionStorage khi chrome ở Chế độ ẩn danh. –

11

Để phát hiện xem một cửa sổ là trong chế độ ẩn danh, kiểm tra ẩn danh tài sản của Tab có liên quan hoặc đối tượng Window. Ví dụ:

var bgPage = chrome.extension.getBackgroundPage(); 

function saveTabData(tab, data) { 
    if (tab.incognito) { 
    bgPage[tab.url] = data;  // Persist data ONLY in memory 
    } else { 
    localStorage[tab.url] = data; // OK to store data 
} 

http://code.google.com/chrome/extensions/overview.html

0

Hiện tại, việc thực hiện điều này từ tập lệnh nội dung khá dễ dàng. Chỉ cần sử dụng

if(chrome.extension.inIncognitoContext) { 
    //you're incognito 
} else { 
    //you're not 
}