如何禁用右键单击以在 JavaScript 中下载图像
How do I disable right click to download images in JavaScript?
预期行为为:
- 当用户右键单击"仅图像"时,将显示版权声明。
- 如果用户选择禁止显示来自网页的警报消息,则仍然不会显示用于保存图像的上下文菜单。
- 适用于"所有"Web浏览器(包括IE 8+,Opera,Google Chrome,Apple Safari和Mozilla Firefox)。
- 我希望能够将此代码放在自己的".js"文件中,名称为
image_norightclick.js
.
法典:
var message="Copyright 'u00A9 2015 [YOUR NAME HERE]";
function disableClick(e) {
if (document.all) {
if (((event.button == 2) || (event.button == 3)) && ((event.srcElement.tagName == "IMG") || (event.srcElement.getAttribute("type").toUpperCase() == "IMAGE"))) {
if (event.srcElement.oncontextmenu) {
event.srcElement.oncontextmenu = function(event) {
if (event.preventDefault) {
event.preventDefault();
};
if (event.stopPropagation) {
event.stopPropagation();
};
if (event.returnValue) {
event.returnValue = false;
};
};
} else {
if (event.srcElement.addEventListener) {
event.srcElement.addEventListener("contextmenu", function(event) {
if (event.preventDefault) {
event.preventDefault();
};
if (event.stopPropagation) {
event.stopPropagation();
};
if (event.returnValue) {
event.returnValue = false;
};
}
);
} else if (event.srcElement.attachEvent) {
event.srcElement.attachEvent("contextmenu", function(event) {
if (event.preventDefault) {
event.preventDefault();
};
if (event.stopPropagation) {
event.stopPropagation();
};
if (event.returnValue) {
event.returnValue = false;
};
}
);
};
};
alert(message);
return false;
};
} else if (document.layers) {
if ((e.which == 2) || (e.which == 3)) {
if (e.target.oncontextmenu) {
e.target.oncontextmenu = function(e) {
if (e.preventDefault) {
e.preventDefault();
};
if (e.stopPropagation) {
e.stopPropagation();
};
if (e.returnValue) {
e.returnValue = false;
};
};
} else {
if (e.target.addEventListener) {
e.target.addEventListener("contextmenu", function(e) {
if (e.preventDefault) {
e.preventDefault();
};
if (e.stopPropagation) {
e.stopPropagation();
};
if (e.returnValue) {
e.returnValue = false;
};
}
);
};
};
alert(message);
return false;
};
} else if (document.getElementById)
{
if (((e.which == 2) || (e.which == 3)) && ((e.target.tagName == "IMG") || (e.target.getAttribute("type") && e.target.getAttribute("type").toUpperCase() == "IMAGE"))) {
if (e.target.oncontextmenu) {
e.target.oncontextmenu = function(e) {
if (e.preventDefault) {
e.preventDefault();
};
if (e.stopPropagation) {
e.stopPropagation();
};
if (e.returnValue) {
e.returnValue = false;
};
};
} else {
if (e.target.addEventListener) {
e.target.addEventListener("contextmenu", function(e) {
if (e.preventDefault) {
e.preventDefault();
};
if (e.stopPropagation) {
e.stopPropagation();
};
if (e.returnValue) {
e.returnValue = false;
};
}
);
};
};
alert(message);
return false;
};
};
};
function associateImages() {
for (i = 0; i < document.images.length; i++) {
document.images[i].onmousedown = disableClick;
};
};
if (document.all) {
if (document.onmouseup) {
document.onmouseup = disableClick;
} else {
window.onmouseup = disableClick;
};
} else if (document.getElementById) {
if (document.onmousedown) {
document.onmousedown = disableClick;
} else {
window.onmousedown = disableClick;
};
} else if (document.layers) {
associateImages();
};
new Function(){}
怎么了?它只需要function(){}
您需要在顶部定义您的var message
:
var message = 'Your message here.';
这是工作代码:
function disableClick(e) {
var message = 'WOULD YOU STEAL A CAR?';
if (document.all) {
if (((event.button == 2) || (event.button == 3)) && ((event.srcElement.tagName == "IMG") || (event.srcElement.getAttribute("type").toUpperCase() == "IMAGE"))) {
if (event.srcElement.oncontextmenu) {
event.srcElement.oncontextmenu = function(event) {
if (event.preventDefault) {
event.preventDefault();
};
if (event.stopPropagation) {
event.stopPropagation();
};
if (event.returnValue) {
event.returnValue = false;
};
};
} else {
if (event.srcElement.addEventListener) {
event.srcElement.addEventListener("contextmenu", function(event) {
if (event.preventDefault) {
event.preventDefault();
};
if (event.stopPropagation) {
event.stopPropagation();
};
if (event.returnValue) {
event.returnValue = false;
};
}
);
} else if (event.srcElement.attachEvent) {
event.srcElement.attachEvent("contextmenu", function(event) {
if (event.preventDefault) {
event.preventDefault();
};
if (event.stopPropagation) {
event.stopPropagation();
};
if (event.returnValue) {
event.returnValue = false;
};
}
);
};
};
alert(message);
return false;
};
} else if (document.layers)
{
if ((e.which == 2) || (e.which == 3)) {
if (e.target.oncontextmenu) {
e.target.oncontextmenu = function(e) {
if (e.preventDefault) {
e.preventDefault();
};
if (e.stopPropagation) {
e.stopPropagation();
};
if (e.returnValue) {
e.returnValue = false;
};
};
} else {
if (e.target.addEventListener) {
e.target.addEventListener("contextmenu", function(e) {
if (e.preventDefault) {
e.preventDefault();
};
if (e.stopPropagation) {
e.stopPropagation();
};
if (e.returnValue) {
e.returnValue = false;
};
}
);
};
};
alert(message);
return false;
};
} else if (document.getElementById)
{
if (((e.which == 2) || (e.which == 3)) && ((e.target.tagName == "IMG") || (e.target.getAttribute("type") && e.target.getAttribute("type").toUpperCase() == "IMAGE"))) {
if (e.target.oncontextmenu) {
e.target.oncontextmenu = function(e) {
if (e.preventDefault) {
e.preventDefault();
};
if (e.stopPropagation) {
e.stopPropagation();
};
if (e.returnValue) {
e.returnValue = false;
};
};
} else {
if (e.target.addEventListener) {
e.target.addEventListener("contextmenu", function(e) {
if (e.preventDefault) {
e.preventDefault();
};
if (e.stopPropagation) {
e.stopPropagation();
};
if (e.returnValue) {
e.returnValue = false;
};
}
);
};
};
alert(message);
return false;
};
};
};
function associateImages() {
for (i = 0; i < document.images.length; i++) {
document.images[i].onmousedown = disableClick;
};
};
if (document.all) {
if (document.onmouseup) {
document.onmouseup = disableClick;
} else {
window.onmouseup = disableClick;
};
} else if (document.getElementById) {
if (document.onmousedown) {
document.onmousedown = disableClick;
} else {
window.onmousedown = disableClick;
};
} else if (document.layers) {
associateImages();
};
/* This is the actual "No Right-Click on Images" script [ABOVE]. DO NOT EDIT [ABOVE] THIS LINE [END] */
JS小提琴演示
相关文章:
- 通过javascript下载文件时设置文件名
- 如何用javascript下载画布图像(base64)
- 如何用javascript下载巨大的CSV文件
- Javascript下载在firefox中停止,但在Chrome中有效
- javascript下载一个文件并执行提交操作
- Javascript:下载后从文件夹中删除文件
- 我将如何夸大(延长)使用javascript下载文件所需的时间
- 在 Lua/Luci 服务器上使用 HTML/JavaScript 下载服务器根文件系统中的现有文件
- Javascript下载一个URL-Azure Blob存储
- Javascript下载在Firefox和IE中不起作用
- 如何使用javascript下载从画布生成的所有图像
- 跨浏览器javascript下载功能
- 如何自动点击下载URL并使用javascript下载文件
- 使用Javascript下载.wav或.mp3
- 通过Firefox中的javascript下载图像
- 以javascript下载文件
- 通过jquery/javascript下载php genereted csv文件
- 使用 JavaScript 下载 PDF 文件
- 通过javascript下载音频对象
- 从ASP网站抓取JavaScript下载链接