最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js結(jié)合css實(shí)現(xiàn)登錄后才能復(fù)制的效果實(shí)例

 更新時(shí)間:2023年07月15日 16:14:25   投稿:yin  
很多網(wǎng)站都有登錄后才能復(fù)制的限制,什么原理呢?css屬性user-select:none,通常會采用這種方式來禁止復(fù)制文本。但瀏覽開發(fā)者工具-審查元素,取消此樣式后,就可以選中文本了。想要完整地禁止復(fù)制,還需要通過js控制選擇的內(nèi)容。

很多網(wǎng)站都有登錄后才能復(fù)制的限制,什么原理呢。?設(shè)置css屬性user-select:none,此時(shí)鼠標(biāo)無法實(shí)現(xiàn)選中文本,也就無法復(fù)制文本,通常會采用這種方式來禁止復(fù)制文本。但瀏覽開發(fā)者工具-審查元素,取消此樣式后,就可以選中文本了。想要完整地禁止復(fù)制,還需要通過js控制選擇的內(nèi)容。

user-select:none

該屬性用來控制用戶能否選中文本。其對應(yīng)常用的值:

none:元素及其子元素的文本不可選中。
auto:具體取值取決于一系列條件,具體如下:* 在 ::before 和 ::after 偽元素上,采用的屬性值是 none* 如果元素是可編輯元素,則采用的屬性值是 contain* 否則,如果此元素的父元素的 user-select 采用的屬性值為 all,則該元素采用的屬性值也為 all* 否則,如果此元素的父元素的 user-select 采用的屬性值為 none,則該元素采用的屬性值也為 none* 否則,采用的屬性值為 text
text:用戶可以選中文本。
all:當(dāng)單擊文本時(shí),會選中這一行文本。

-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;

jquery禁用

 禁用復(fù)制、粘貼、剪切

$(document).on("cut copy paste", function(e) {
        e.preventDefault();
});

 禁用右鍵

$(document).on("contextmenu", function(e) {
    e.preventDefault();
});

上述的代碼只是阻止了瀏覽器自帶的操作。如果用戶想要復(fù)制、粘貼和剪切網(wǎng)頁中的文本,依然可以通過瀏覽器菜單或使用快捷鍵來執(zhí)行。

js屏蔽選中指定內(nèi)容

window.addEventListener('copy',function(){
	const selection = window.getSelection();
	const copyNode = selection.getRangeAt(0).cloneContents();
}); 
const div = document.createElement('div');
div.appendChild(copyNode);
// 通過getComputedStyle獲取style值,需要將節(jié)點(diǎn)掛載到dom樹上,因此append到body
document.body.appendChild(div);
const nodelist = div.childNodes;
for (let i = 0; i < nodelist.length; i++) {
	const curnode = nodelist[i];
	const nodeType = curnode.nodeType;
	// 將節(jié)點(diǎn)類型為元素節(jié)點(diǎn),并且設(shè)置了user-select:none的節(jié)點(diǎn)從復(fù)制的內(nèi)容中過濾掉
	if (nodeType === 1 && window.getComputedStyle(curnode).userSelect === 'none') {div.removeChild(curnode);}
}
// 獲取過濾后的數(shù)據(jù)
const cpt = div.innerHTML; 
selection.select(cpt); 
document.execCommand('copy');
//復(fù)制到剪切板

結(jié)論

到此這篇關(guān)于js結(jié)合css實(shí)現(xiàn)登錄后才能復(fù)制的效果實(shí)例的文章就介紹到這了,更多相關(guān)js+css實(shí)現(xiàn)登錄后才能復(fù)制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 黑帽seo劫持程序,js劫持搜索引擎代碼

    黑帽seo劫持程序,js劫持搜索引擎代碼

    今天在瀏覽網(wǎng)頁時(shí)無意中發(fā)現(xiàn)了這段JS劫持搜索引擎代碼。劫持搜索引擎正常搜索過來的流量,這是黑帽seo常用的劫持方法。特意解密出來供大家了解其劫持原理。感興趣的朋友一起學(xué)習(xí)學(xué)習(xí)吧
    2015-09-09
  • JS中for,for...in,for...of和forEach的區(qū)別和用法實(shí)例

    JS中for,for...in,for...of和forEach的區(qū)別和用法實(shí)例

    JS遍歷數(shù)組(循環(huán)數(shù)組)的方式有多種,可以使用傳統(tǒng)的for循環(huán),也可以使用升級版的for in循環(huán),還可以使用Array類型的forEach() 方法,這篇文章主要給大家介紹了關(guān)于JS中for、for...in、for...of和forEach的區(qū)別和用法的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • FF IE兼容性的修改小結(jié)

    FF IE兼容性的修改小結(jié)

    FF IE兼容性的修改小結(jié),大家以后在javascript的編寫過程中需要注意下。
    2009-09-09
  • 使用jquery解析XML的方法

    使用jquery解析XML的方法

    這篇文章主要介紹了使用jquery解析XML的方法,代碼簡潔實(shí)用,需要的朋友可以參考下
    2014-09-09
  • 深入理解JS addLoadEvent函數(shù)

    深入理解JS addLoadEvent函數(shù)

    下面小編就為大家?guī)硪黄钊肜斫釰S addLoadEvent函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • JS 數(shù)組隨機(jī)洗牌的實(shí)例代碼

    JS 數(shù)組隨機(jī)洗牌的實(shí)例代碼

    這篇文章主要介紹了js 數(shù)組隨機(jī)洗牌的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-09-09
  • Sample script that deletes a SQL Server database

    Sample script that deletes a SQL Server database

    Sample script that deletes a SQL Server database...
    2007-06-06
  • 17道題讓你徹底理解JS中的類型轉(zhuǎn)換

    17道題讓你徹底理解JS中的類型轉(zhuǎn)換

    這篇文章主要給大家介紹了關(guān)于如何通過17道題讓你徹底理解JS中的類型轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • javascript中關(guān)于&& 和 || 表達(dá)式的小技巧分享

    javascript中關(guān)于&& 和 || 表達(dá)式的小技巧分享

    我將會介紹和解析12個(gè)簡單但是強(qiáng)大的JavaScript技巧. 這些技巧所有的JavaScript程序員都可以馬上使用, 你不需要成為JavaScript高手才能理解這些.下面我們開始本系列的第一篇文章,介紹下強(qiáng)大的&& 和 || 表達(dá)式
    2015-04-04
  • js判斷瀏覽器版本以及瀏覽器內(nèi)核的方法

    js判斷瀏覽器版本以及瀏覽器內(nèi)核的方法

    這篇文章主要介紹了js判斷瀏覽器版本以及瀏覽器內(nèi)核的方法,可實(shí)現(xiàn)針對各個(gè)瀏覽器的判斷,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01

最新評論

沈丘县| 新化县| 新郑市| 花莲县| 方正县| 边坝县| 泸溪县| 象山县| 治多县| 清远市| 台东县| 冀州市| 安远县| 衡南县| 理塘县| 延长县| 平山县| 砀山县| 秦皇岛市| 景谷| 开化县| 石渠县| 中江县| 封丘县| 胶州市| 天柱县| 秦安县| 铜川市| 雷州市| 汉川市| 泗洪县| 资阳市| 富锦市| 射洪县| 永顺县| 邢台市| 永城市| 鄂托克前旗| 广灵县| 班玛县| 卢氏县|