超級(jí)標(biāo)簽之一鍵解除網(wǎng)頁(yè)復(fù)制限制、網(wǎng)頁(yè)自由編輯、顯示星號(hào)密碼功能代碼
下面為了方便大家直接使用直接將鏈接拖動(dòng)到瀏覽器書(shū)簽欄即可
?? 顯示星號(hào)密碼
拖動(dòng)圖標(biāo)添加到書(shū)簽欄,點(diǎn)擊 顯示星號(hào)密碼
書(shū)簽后,即可當(dāng)前網(wǎng)頁(yè)的星號(hào)密碼,適用于絕大部分網(wǎng)站。
核心代碼
javascript:"use strict";!function(){for(var t=document.getElementsByTagName("input"),e=0;e<t.length;e++)"password"===t[e].getAttribute("type")&&t[e].setAttribute("type","text")}();
把上面的鏈接拖動(dòng)到瀏覽器書(shū)簽欄試試
如果部分網(wǎng)站仍然無(wú)法顯示星號(hào)密碼,可以使用增強(qiáng)型擴(kuò)展 (opens new window)。支持QQ,百度,阿里等更多網(wǎng)站。
代碼解釋
這段代碼是一個(gè)簡(jiǎn)單的 JavaScript 腳本,用于將頁(yè)面中所有類(lèi)型為 password
的輸入框(<input>
標(biāo)簽)的類(lèi)型改為 text
,從而使輸入的密碼以明文形式顯示出來(lái)。以下是代碼的逐步解析:
代碼內(nèi)容:
"use strict"; !function(){ for(var t=document.getElementsByTagName("input"), e=0; e<t.length; e++) "password"===t[e].getAttribute("type") && t[e].setAttribute("type", "text") }();
代碼解析:
"use strict";
:
開(kāi)啟嚴(yán)格模式(strict mode
),以防止某些不安全或不被推薦的 JavaScript 用法。例如,它會(huì)阻止使用未聲明的變量。
嚴(yán)格模式可以幫助提高代碼的安全性和可靠性。
!function(){ ... }();
:
這是一個(gè)立即執(zhí)行函數(shù)表達(dá)式(IIFE,Immediately Invoked Function Expression)。
通過(guò)加 !
(或其他符號(hào),如 ()
)使函數(shù)成為表達(dá)式,并立即執(zhí)行它的內(nèi)容。
這個(gè)函數(shù)的主要作用是防止變量污染全局作用域。
document.getElementsByTagName("input")
:
使用 document.getElementsByTagName
獲取頁(yè)面中所有的 <input>
元素,返回一個(gè) HTML 集合(HTMLCollection
)。
for(var t=document.getElementsByTagName("input"), e=0; e<t.length; e++)
:
定義了一個(gè)循環(huán),變量 t
是存儲(chǔ)所有 input
元素的集合。
變量 e
是循環(huán)計(jì)數(shù)器,從 0
開(kāi)始,直到遍歷所有的 input
元素。
t[e].getAttribute("type")
:
對(duì)每個(gè) <input>
元素,檢查它的 type
屬性值。
如果 type
屬性等于 "password"
,則繼續(xù)執(zhí)行后面的邏輯。
t[e].setAttribute("type", "text")
:
將滿(mǎn)足條件的 <input>
元素的 type
屬性從 "password"
改為 "text"
。
這樣,密碼輸入框就會(huì)從掩碼(隱藏字符,例如 ****
)變?yōu)槊魑娘@示。
運(yùn)行結(jié)果:
代碼執(zhí)行后,頁(yè)面上所有的密碼輸入框?qū)⒆優(yōu)槊魑娘@示。
實(shí)際用途:
- 調(diào)試目的:開(kāi)發(fā)者可能會(huì)使用這種腳本來(lái)調(diào)試密碼輸入框,檢查輸入是否正確。
- 不推薦用于惡意目的:例如,未經(jīng)用戶(hù)許可在網(wǎng)頁(yè)中運(yùn)行此代碼會(huì)泄露密碼,存在隱私和安全隱患。
??解除網(wǎng)頁(yè)限制
拖動(dòng)圖標(biāo)添加到書(shū)簽欄,點(diǎn)擊 解除網(wǎng)頁(yè)限制
書(shū)簽后,即可解鎖當(dāng)前網(wǎng)站的復(fù)制限制,右鍵限制,選擇限制等,適用于絕大部分網(wǎng)站。
核心代碼
javascript:"use strict";!function(){var t=function(t){t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation()};["copy","cut","contextmenu","selectstart","mousedown","mouseup","keydown","keypress","keyup"].forEach(function(e){document.documentElement.addEventListener(e,t,{capture:!0})}),alert("解除限制成功啦!")}();
把上面的鏈接拖動(dòng)到瀏覽器書(shū)簽欄試試
代碼解釋
這段代碼是一個(gè)用于解除網(wǎng)頁(yè)上的一些用戶(hù)交互限制的 JavaScript 腳本,通常被用于解決一些網(wǎng)站限制用戶(hù)操作的情況,比如禁用復(fù)制、右鍵菜單或選擇文本等。下面是對(duì)代碼的詳細(xì)解釋?zhuān)?/p>
這段代碼的主要功能是通過(guò)監(jiān)聽(tīng)并阻止特定事件的傳播,來(lái)解除一些網(wǎng)頁(yè)上的交互限制。例如:
- 禁止右鍵菜單(
contextmenu
) - 禁止文本選擇(
selectstart
) - 禁止復(fù)制(
copy
) - 禁止剪切(
cut
) - 禁用鍵盤(pán)事件(
keydown
、keypress
、keyup
) - 禁用鼠標(biāo)事件(
mousedown
、mouseup
)
通過(guò)阻止這些事件的傳播,用戶(hù)可以重新獲得對(duì)網(wǎng)頁(yè)的控制權(quán)。
代碼逐步解析
(1) "use strict";
開(kāi)啟嚴(yán)格模式,使代碼更加規(guī)范,避免一些隱含錯(cuò)誤。
(2) !function(){ ... }();
這是一個(gè)自執(zhí)行函數(shù)(IIFE,Immediately Invoked Function Expression),用于封裝代碼,避免污染全局作用域。
(3) var t = function(t){ ... };
定義了一個(gè)事件處理函數(shù) t,用于阻止事件的傳播:
t.stopPropagation():阻止事件冒泡到父級(jí)元素。
t.stopImmediatePropagation && t.stopImmediatePropagation():如果存在 stopImmediatePropagation 方法(某些瀏覽器支持),則阻止事件的后續(xù)處理器被調(diào)用。
(4) ["copy", "cut", ...].forEach(function(e){ ... });
列出了一組事件類(lèi)型,包括:
對(duì)這些事件進(jìn)行遍歷,并為每個(gè)事件類(lèi)型添加一個(gè)全局監(jiān)聽(tīng)器。
剪切和復(fù)制相關(guān)的事件:copy、cut
右鍵菜單事件:contextmenu
文本選擇事件:selectstart
鼠標(biāo)事件:mousedown、mouseup
鍵盤(pán)事件:keydown、keypress、keyup
(5) document.documentElement.addEventListener(e, t, {capture: !0});
為 document.documentElement(HTML 根節(jié)點(diǎn))添加事件監(jiān)聽(tīng)器:
e 是當(dāng)前事件類(lèi)型,比如 copy 或 mousedown。
t 是之前定義的事件處理函數(shù),用于阻止事件的傳播。
{capture: !0} 表示
?? 網(wǎng)頁(yè)自由編輯
拖動(dòng)圖標(biāo)添加到書(shū)簽欄,點(diǎn)擊 網(wǎng)頁(yè)自由編輯
書(shū)簽后,當(dāng)前網(wǎng)頁(yè)內(nèi)容變?yōu)榭梢跃庉嫷臓顟B(tài),再次點(diǎn)擊退出編輯狀態(tài),適用于所有網(wǎng)站。
核心代碼
javascript:"use strict";!function(){"true"===document.body.getAttribute("contenteditable")?(document.body.setAttribute("contenteditable",!1),alert("網(wǎng)頁(yè)不能編輯啦!")):(document.body.setAttribute("contenteditable",!0),alert("網(wǎng)頁(yè)可以編輯啦!"))}();
把上面鏈接拖動(dòng)到瀏覽器書(shū)簽欄試試
代碼解釋
這段代碼是一段 JavaScript 書(shū)簽代碼(bookmarklet),用于切換網(wǎng)頁(yè)的內(nèi)容是否可編輯(contenteditable 屬性),以下是代碼的詳細(xì)解釋?zhuān)?/p>
"use strict"; !function(){ "true" === document.body.getAttribute("contenteditable") ? ( document.body.setAttribute("contenteditable", !1), alert("網(wǎng)頁(yè)不能編輯啦!") ) : ( document.body.setAttribute("contenteditable", !0), alert("網(wǎng)頁(yè)可以編輯啦!") ) }();
功能簡(jiǎn)介
這段代碼通過(guò)設(shè)置網(wǎng)頁(yè) <body>
元素的 contenteditable
屬性,使網(wǎng)頁(yè)內(nèi)容變?yōu)榭删庉嫽虿豢删庉嫚顟B(tài)。執(zhí)行后會(huì)彈出一個(gè)提示框,告知當(dāng)前狀態(tài)是否可編輯。
詳細(xì)拆解:
啟用嚴(yán)格模式:
"use strict";
啟用嚴(yán)格模式,目的是提高代碼的安全性,防止一些潛在的錯(cuò)誤。
自調(diào)用匿名函數(shù):
!function() { ... }();
這是一個(gè)立即執(zhí)行函數(shù)表達(dá)式(IIFE,Immediately Invoked Function Expression)。該函數(shù)會(huì)在代碼運(yùn)行時(shí)立即執(zhí)行。
獲取 contenteditable 屬性值:
"true" === document.body.getAttribute("contenteditable")
檢查 <body> 元素的 contenteditable 屬性值是否為 "true":
如果 contenteditable="true",說(shuō)明當(dāng)前網(wǎng)頁(yè)內(nèi)容是可編輯的。
如果沒(méi)有設(shè)置,或值為 false,說(shuō)明網(wǎng)頁(yè)內(nèi)容不可編輯。
切換狀態(tài):
document.body.setAttribute("contenteditable", !1)
如果當(dāng)前是 "true",將 contenteditable 屬性設(shè)置為 false,使網(wǎng)頁(yè)不可編輯。
如果當(dāng)前不是 "true"(即不可編輯),則將其設(shè)置為 true,使網(wǎng)頁(yè)可編輯。
彈窗提示:
alert("網(wǎng)頁(yè)不能編輯啦!");
根據(jù)當(dāng)前狀態(tài),通過(guò) alert 彈出提示框:
如果 contenteditable 被設(shè)置為 false,彈出“網(wǎng)頁(yè)不能編輯啦!”。
如果設(shè)置為 true,彈出“網(wǎng)頁(yè)可以編輯啦!”。
使用場(chǎng)景:
調(diào)試或快速修改網(wǎng)頁(yè): 這段代碼可以臨時(shí)讓網(wǎng)頁(yè)內(nèi)容變?yōu)榭删庉嫚顟B(tài),用于前端調(diào)試或快速修改頁(yè)面上的內(nèi)容。
簡(jiǎn)單演示或教學(xué): 可以用來(lái)演示網(wǎng)頁(yè)中 contenteditable 屬性的效果。
如何運(yùn)行:
將整個(gè)代碼復(fù)制到瀏覽器地址欄或書(shū)簽中。
在任意網(wǎng)頁(yè)上點(diǎn)擊執(zhí)行代碼即可切換網(wǎng)頁(yè)的編輯狀態(tài)。
總結(jié):
這段代碼的核心功能是利用 HTML 的 contenteditable
屬性,讓用戶(hù)可以通過(guò)點(diǎn)擊執(zhí)行代碼,在網(wǎng)頁(yè)內(nèi)容“可編輯”和“不可編輯”之間切換,同時(shí)通過(guò)彈窗提示用戶(hù)當(dāng)前的狀態(tài)。
到此這篇關(guān)于超級(jí)標(biāo)簽之一鍵解除網(wǎng)頁(yè)復(fù)制限制、網(wǎng)頁(yè)自由編輯、顯示星號(hào)密碼功能代碼的文章就介紹到這了,更多相關(guān)網(wǎng)頁(yè)復(fù)制自由編輯顯示星號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript變量作用域及內(nèi)存問(wèn)題實(shí)例分析
這篇文章主要介紹了JavaScript變量作用域及內(nèi)存問(wèn)題,結(jié)合實(shí)例形式分析了javascript全局變量、局部變量、塊級(jí)作用域等概念及內(nèi)存優(yōu)化問(wèn)題相關(guān)操作技巧,需要的朋友可以參考下2019-06-06微信小程序?qū)崿F(xiàn)購(gòu)物車(chē)頁(yè)面
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)購(gòu)物車(chē)頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07LayUI—tree樹(shù)形結(jié)構(gòu)的使用解析
這篇文章主要介紹了LayUI—tree樹(shù)形結(jié)構(gòu)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10JS中JSON.stringify使用場(chǎng)景面試精講
這篇文章主要為大家介紹了JS中JSON.stringify使用場(chǎng)景面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10JavaScript模擬實(shí)現(xiàn)網(wǎng)易云輪播效果
這篇文章主要介紹了如何利用JavaScript模仿網(wǎng)易云輪播效果的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下2022-04-04詳談innerHTML innerText的使用和區(qū)別
下面小編就為大家?guī)?lái)一篇詳談innerHTML innerText的使用和區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08