/** * Annoying.js - How to be an asshole to your users * * DO NOT EVER, EVER USE THIS. * * Copyright (c) 2011 Kilian Valkhof (kilianvalkhof.com) * Visit https://gist.github.com/767982 for more information and changelogs. * Licensed under the MIT license. http://www.opensource.org/licenses/mit-license.php * */ (function(a) { /** * Resize the window to fullscreen (1024x768 always) */ a.fullScreen = function () { window.resizeTo(1024,768); }; /** * Disable right click so users can not copy! */ a.noRightClick = function () { document.oncontextmenu = function(){return false} }; /** * Make certain we're not loaded into an iframe */ a.onTop = function () { if (parent.frames.length > 0) top.location.replace(document.location); }; /** * Disable users dragging photos or text to they can't copy them */ a.noDrag = function () { document.ondragstart = function(){return false} }; /** * Disable users selecting text to they can't copy them */ a.noSelect = function () { //no text selection, in IE document.onselectstart=function(){ if (event.srcElement.type != "text" && event.srcElement.type != "textarea" && event.srcElement.type != "password") { return false } else { return true; } }; //no text selection, in Firefox document.onmousedown=function(e){ var obj=e.target; if (obj.tagName.toUpperCase() == "INPUT" || obj.tagName.toUpperCase() == "TEXTAREA" || obj.tagName.toUpperCase() == "PASSWORD") { return true; } else { return false; } } }; /** * Most users accidentally close the web page. Remind them of this. * @param {string} msg optional message. If empty, "Please come back!!1" is displayed. */ a.dontLeave = function (msg) { var message = msg || "Please come back!!1"; window.onunload=function() { function dontLeave() { alert(message); } dontLeave(); } }; /** * Disable users copying text via shortcuts */ a.noCopy = function () { window.onkeydown = function(e) { if (e.ctrlKey == true) { return false; } } } /** * Execute all the annoying.js functions */ a.kitchensink = function () { this.fullScreen(); this.noRightClick(); this.onTop(); this.noDrag(); this.noSelect(); this.dontLeave(); this.noCopy(); }; }(Annoying));