国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS應(yīng)用之禁止抓屏、復(fù)制、打印

2019-11-21 01:48:33
字體:
供稿:網(wǎng)友
項目需要禁止抓屏、復(fù)制、打印的要求,復(fù)制、打印做起來可能順手一點(diǎn)網(wǎng)上各種各樣的腳本俯首皆是。但抓屏怎么禁止?PrintScreen是一個特殊的鍵,它是沒有keyCode的鍵,所以onkeydown變得毫無用處。不過換一種思路的話可會更好,我們從粘貼板著手采取曲線救國策略。代碼如下:
<script language="javascript">
window.setInterval("clipboardData.setData('text','')",100);
</script>
以上代碼是每100毫秒清空一次粘貼板操作。當(dāng)頁面加載時腳本程序就開始自動執(zhí)行。但這樣有個弊端,不管網(wǎng)頁被最小化還是怎么的只要這個窗口開著我們電腦所有的復(fù)制操作都無法進(jìn)行(腳本一直在清空粘貼板),從某種意義上講是達(dá)到預(yù)期效果了,但有些欠佳:(。

我們知道所有的控件都有onfocus和onblur事件,window窗口也不例外。我們通過利用這兩個事件,只有在當(dāng)前窗口處于活動狀態(tài)時才執(zhí)行清空操作,否則停止執(zhí)行。代碼如下:
    <script language="javascript">
var interval
window.onfocus=function(){interval=window.setInterval("clipboardData.setData('text','')",100);}
window.onblur=function(){window.clearInterval(interval);}
    </script>
這樣就可以完美的解決這個問題。但對于不將截屏內(nèi)容放入粘貼板的截屏程序來說此方法還是心有余而力不足的。
最新測試實(shí)踐發(fā)現(xiàn)使用onfocus和onblur事件的方法也不盡如人意,當(dāng)焦點(diǎn)指向程序頁面內(nèi)其他控件(即使Table)時,window將失去焦點(diǎn)從而觸發(fā)onblur事件停止執(zhí)行清空粘貼板命令,難道需要遍歷所有控件為其onfocus和onblur綁定事件?有些迷茫與失望。
另window.onfocus只是document的onfocus,如果焦點(diǎn)在地址欄或菜單之類的地方onfocus也將失效。
僅以此文字記錄自己半天時間研究JS的心得。

禁止打印只需將如果下樣式代碼放入程序即可(打印出的頁面內(nèi)容將為空白):
<style>@media print{body{display:none}}</style>

禁止復(fù)制、選擇、右鍵菜單:
<script language=javascript>
function click() {
return false;}
function click1(){if (event.button==2) {return false; }}
function CtrlKeyDown(){
 if (event.keyCode==67&&event.ctrlKey)
 {
  clipboardData.setData('text','');
  return false; 
 }
}
document.onkeydown=CtrlKeyDown;
document.onselectstart=click;
document.onmousedown=click1;
</script>
<noscript><iframe src=*.html></iframe></noscript>
<script language=javascript> 
<!-- 
if (window.Event) 
document.captureEvents(Event.MOUSEUP); 
function nocontextmenu(){ 
 event.cancelBubble = true 
 event.returnValue = false; 
 return false; 

function norightclick(e){ 
if (window.Event){
 if (e.which == 2 || e.which == 3)
 return false;

else if (event.button == 2 || event.button == 3)
{
 event.cancelBubble = true;
 event.returnValue = false;return false;} 

document.oncontextmenu = nocontextmenu; // for IE5+ 
document.onmousedown = norightclick; // for all others 
//--></script>


以上代碼在IE6.0環(huán)境運(yùn)行正常。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 图木舒克市| 楚雄市| 沾益县| 临清市| 彰武县| 苏尼特右旗| 景德镇市| 万宁市| 花垣县| 扬州市| 南涧| 上犹县| 清涧县| 南平市| 年辖:市辖区| 丹江口市| 财经| 朔州市| 杭州市| 临沂市| 眉山市| 桐梓县| 荔波县| 靖边县| 孝昌县| 偃师市| 庐江县| 嫩江县| 教育| 克什克腾旗| 丰台区| 宁阳县| 安康市| 鄂伦春自治旗| 冷水江市| 迁西县| 油尖旺区| 清水河县| 怀来县| 吴桥县| 宜州市|