Disable the printscreen option using javascript

The Following code its disable drag and click, but when u clear the clipboard only IE only its works,
but IE8 its ask for the user prompt. But other borwsers won't works. Pls provide me the solution
var message="";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) 
if (document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers)

Open in new window

Who is Participating?

Improve company productivity with a Business Account.Sign Up

StaticVortexConnect With a Mentor Commented:
There is no solution which will stop someone from clicking Alt-PrtScn and then cropping the photo manually from the captured screen shot.

There are also lots of other ways of getting images from the webpage such as cilcking F12 on IE8 and finding the source of the file.

Try CSS:
Add this to the head of the page:

<link rel="stylesheet" type="text/css" href="printstyle.css" media="print">

And in the file "printstyle.css" you put:

* {display:none;}

Of course, it won't work in older browsers which don't support print stylesheets, or if CSS is disabled, but apart from that, the method works well and probably covers the vast majority of your users (even if they have javascript disabled!).


Useful Methods For Preventing Image theft

1. Put desired image in an external stylesheet
(a) Put an div in the HTML page. (b) Put a single-pixel blank image in the div. (c) In an external CSS style sheet, make the div's background image the actual image to display. Eg:

HTML page head: link to the style sheet

<link href="/style/main.css" rel="stylesheet" type="text/css" />

HTML page body: display div with blank image

<div id="x1" class="x"><img src="/images/blank.gif" width="150" height="250"></div>

CSS sheet: display the background image

{ background: transparent url(/images/protect/pic.jpg) top left no-repeat; }

This method will mean that a right-click "Save Image", or a drag-and-drop will only yield the blank.gif image. It also means that the filename of the protected image will only be in the CSS style sheet, not the HTML page - most people won't find it. It requires no javascript.


2. Use a CSS print style to prevent images being printed with the page (could also use an external stylesheet)

This will not be activated if the user has CSS turned off (or has an ancient browser), but since the original protected images were put there by CSS in the first place, then nothing will be displayed anyway. So they still can't print them!

HTML page head:

<style media="print" type="text/css">
div.x {display:none}


3. Kill that damn Image Toolbar in Internet Explorer

HTML page head:

<meta http-equiv="imagetoolbar" content="no" />


4. Prevent search engine robots from caching images

HTML page head:

<meta name="robots" content="index, follow, noimageclick, noimageindex" />

or robots.txt file:

User-agent: *
Disallow: /images/protect/


5. Prevent hotlinking to images from outside your website

.htaccess file: on Apache servers

When a request is made for an image from outside the website, a different image, stolen.gif is served (basically saying that this image was stolen from www.example.com)

options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI}!images/stolen\.gif$
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER}!^http://(www\.)?example\.com/? [NC]
RewriteRule images/ http://www\.example\.com/images/stolen\.gif [R,L]

Another way to refuse access to those images.

SetEnvIf Referer "^$" local_ref=1
SetEnvIfNoCase Referer "^http://(www\.)?example\.com/" local_ref=1
<FilesMatch "\.(gif┬Žjpg)">
Order Allow,Deny
Allow from env=local_ref
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.