簡體   English   中英

如何通過JavaScript在瀏覽器中檢測用戶是否選擇了“ view-source:”?

[英]How to detect if user oppened “view-source:” in browser via javascript?

有沒有一種方法可以檢測用戶是否通過javascript從我的網站中刪除了源代碼?

沒辦法。 這是通過腳本可以訪問的任何窗口之外的瀏覽器功能完成的

用戶可以輕松訪問發送到瀏覽器的所有內容

沒有JavaScript API或事件可讓您讀取用戶是否打開了頁面源。 您可以采用各種解決方法,例如,通過聽捷徑(Chrome):

 document.body.addEventListener("keydown", function(event) { if (event.code == "F12") { console.log("Developer Tools..."); } if (event.getModifierState("Control") && event.code == "KeyU") { console.log("View page source..."); } if (event.getModifierState("Control") && event.getModifierState("Shift") && event.code == "KeyI") { console.log("Inspect..."); } }); 

但是,很明顯,您只能捕獲所有“查看頁面源”事件的一小部分。

實際上,我可以想到一種方法。 在某些情況下它可能會失敗,因此您不能相信它的結果始終為真,但它在大多數情況下都有效。

您可以做的是在數據庫中創建一個表,並在每次加載頁面時添加一個具有唯一ID和訪問者IP地址的行。 讓我們說一些當前時間(以毫秒為單位)和一些隨機數,以確保它是唯一的,即使訪問者同時打開多個頁面也是如此。 然后將相同的ID作為Javascript變量輸出到瀏覽器,並在頁面加載時使用Ajax將ID發送回服務器,而當服務器接收到ID時,它將從數據庫中刪除該行。 即使在不可見的Ifram內部,也將ID發送到服務器,以確保即使在瀏覽器中關閉了Java腳本,服務器也可以接收ID。 保留在您數據庫中的那些ID最有可能是打開您網站的源代碼的那些ID,因為在查看源代碼時會同時禁用javascript和iframe內容。 正如我提到的,在某些情況下,這可能會失敗,例如,如果訪客在打開頁面時互聯網斷開連接,或者如果搜索引擎正在訪問您的網站,但是您可以通過檢查其用戶代理從搜索引擎中刪除結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM