是否可以删除"检查元素"?

时间:2015-02-24 07:48:13

标签: javascript google-chrome google-chrome-app

是否可以通过Javascript删除或禁用Chrome应用中的“检查元素”上下文菜单?

我搜索了几个论坛,但没有明确的答案。

13 个答案:

答案 0 :(得分:12)

我对一个页面有一个要求。在该页面中,我想阻止用户执行以下操作,

  • 右键单击
  • F12
  • Ctrl + Shift + I
  • Ctrl + Shift + J
  • Ctrl + Shift + C
  • Ctrl + U

为此我用Google搜索,最后得到以下链接,

http://andrewstutorials.blogspot.in/2014/03/disable-ways-to-open-inspect-element-in.html

我使用Chrome浏览器&火福兹。它符合我的要求。

右键单击

 `<body oncontextmenu="return false;">`

<强>键

document.onkeydown = function(e) {
  if(event.keyCode == 123) {
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) {
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) {
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) {
     return false;
  }
  if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) {
     return false;
  }
}

答案 1 :(得分:6)

可以通过右键单击(javascript):

来阻止用户打开上下文菜单
document.addEventListener('contextmenu', function(e) {
  e.preventDefault();
});

通过收听contextmenu事件并阻止“显示菜单”的默认行为,菜单将不会显示。 但是用户仍然可以通过控制台检查代码(例如,按Chrome中的F12)。

答案 2 :(得分:2)

不。你可以做的最近的是捕获右键单击,并使它们不打开上下文菜单,但精明的用户将知道键盘组合或菜单选项,无论如何都要访问它,打败了这一点。这是浏览器的一项功能,因此您在页面中所做的任何事情都不会打败它(不如在计算机上安装恶意软件)。

答案 3 :(得分:2)

您不能。

网页上的所有内容均由浏览器呈现,他们希望网站在其上正常运行,否则他们的用户会鄙视它们。 因此,浏览器希望通过代码检查器之类的工具向Web开发人员展示所有较低级别的滴答声。

您可以尝试通过按键事件阻止用户进入菜单。像这样:

// Disable inspect element
$(document).bind("contextmenu",function(e) {
  e.preventDefault();
});
$(document).keydown(function(e){
  if(e.which === 123){
    return false;
}
});

但是,如果用户想查看代码,则将以另一种方式来执行。他只需要一点时间。

简短:如果您不希望人们在他们的浏览器中获得任何东西,那么您首先不应将其发送到他们的浏览器

答案 4 :(得分:1)

document.addEventListener('keydown', function() {
    if (event.keyCode == 123) {
      alert("You Can not Do This!");
      return false;
    } else if (event.ctrlKey && event.shiftKey && event.keyCode == 73) {
      alert("You Can not Do This!");
      return false;
    } else if (event.ctrlKey && event.keyCode == 85) {
      alert("You Can not Do This!");
      return false;
    }
  }, false);
  
  if (document.addEventListener) {
    document.addEventListener('contextmenu', function(e) {
      alert("You Can not Do This!");
      e.preventDefault();
    }, false);
  } else {
    document.attachEvent('oncontextmenu', function() {
      alert("You Can not Do This!");
      window.event.returnValue = false;
    });
  }

没有 F12 没有右键单击

嗨 我用这个代码。 玩得开心♥

答案 5 :(得分:0)

<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
function disableclick(event)
{
  if(event.button==2)
   {
     alert(status);
     return false;    
   }
}
</script>

答案 6 :(得分:0)

虽然没有答案,但Chrome当然可以做到这一点,但我似乎正在进行A / B测试,因为我的工作帐户无法在Gmail中进行检查,而我的个人帐户却可以。

我已经搜索了df_movies_as_features = train_df.pivot(index = 'userId', columns = 'movieId',values = 'rating' ) 标签或HTTP标头,这些标签或标签可能控制着它,但是没有什么引人注目

Gmail blocking Inspect option

答案 7 :(得分:0)

如果对任何人都有用,可以通过向其添加样式pointer-events: none;来禁用单个元素的Inspect Element。

如果您有任何纯粹用于对齐子元素的元素,这很有必要,这些子元素必须与大量更有用的元素重叠;它使您可以防止对齐器元素响应“检查元素”命令。

答案 8 :(得分:0)

将此添加到页面的html标签

<html oncontextmenu="return false">

答案 9 :(得分:0)

可能是 kinda

  1. 首先,使用ramakrishna's解决方案阻止devtools快捷键。

  2. devtools-detect添加到您的网站。这是来自他的github的devtools.js文件的快速链接。

  3. 然后,最后添加以下内容:

if (devtools.isOpen) {


    setInterval(() => {

        var $all = document.querySelectorAll("*");

        for (var each of $all) {
            each.classList.add(`asdjaljsdliasud8ausdijaisdluasdjasildahjdsk${Math.random()}`);
        }
        

    }, 5);
}

基本上,它将使DOM重载,并使其无法通过devtools与之交互。

此外,这只是一个示例:您可以使用更复杂的方法来重载DOM,而不仅仅是添加类。

我认为它不会完美地工作,但它至少足以提供一些额外的“安全性”小层次。

答案 10 :(得分:0)

你不能阻止它,但你可以阻止一些键:

将此添加到您的脚本中:

<script>
 
 document.addEventListener('contextmenu', function(e) {
  e.preventDefault();
 });
 document.addEventListener('keydown', function(e) {
 if (event.keyCode == 123) {
  return false;
 }
 if (e.ctrlKey && e.shiftKey) {
  return false;
 }
 if (event.ctrlKey && event.keyCode == 85) {
  return false;
 }
});
/* other script code */
</script>

答案 11 :(得分:0)

以上答案是完美的,但在按下 ctrl+shift+I 时会出现一些问题。在之前的答案中,它仍然打开检查。通过添加 event.preventdefault() 解决这个问题

document.addEventListener('keydown', function() {
    if (event.keyCode == 123) {
      alert("You Can not Do This!");
      return false;
    } else if (event.ctrlKey && event.shiftKey && event.keyCode == 73) {
      alert("You Can not Do This!");
       event.preventDefault();
      return false;
    } else if (event.ctrlKey && event.keyCode == 85) {
      alert("You Can not Do This!");
      return false;
    }
  }, false);
  
  if (document.addEventListener) {
    document.addEventListener('contextmenu', function(e) {
      alert("You Can not Do This!");
      e.preventDefault();
    }, false);
  } else {
    document.attachEvent('oncontextmenu', function() {
      alert("You Can not Do This!");
      window.event.returnValue = false;
    });
  }

答案 12 :(得分:0)

是的,可以停止在浏览器中检查网站。 如您所知,可以通过三种方法在浏览器中检查网站

  1. 使用键盘快捷键
  2. 使用右键单击
  3. 使用浏览器的开发者菜单

我有 1 和 2 的解决方案,这里是 JavaScript 代码 但用户用户第三种方式是非常罕见的情况

// take body to change the content
const body = document.getElementsByTagName('body');
// stop keyboard shortcuts
window.addEventListener("keydown", (event) => {
  if(event.ctrlKey && (event.key === "S" || event.key === "s")) {
     event.preventDefault();
     body[0].innerHTML = "sorry, you can't do this ?"
  }

  if(event.ctrlKey && (event.key === "C")) {
     event.preventDefault();
     body[0].innerHTML = "sorry, you can't do this ?"
  }
  if(event.ctrlKey && (event.key === "E" || event.key === "e")) {
     event.preventDefault();
     body[0].innerHTML = "sorry, you can't do this ?"
  }
  if(event.ctrlKey && (event.key === "I" || event.key === "i")) {
     event.preventDefault();
     body[0].innerHTML = "sorry, you can't do this ?";
  }
  if(event.ctrlKey && (event.key === "K" || event.key === "k")) {
     event.preventDefault();
     body[0].innerHTML = "sorry, you can't do this ?";
  }
  if(event.ctrlKey && (event.key === "U" || event.key === "u")) {
     event.preventDefault();
     body[0].innerHTML = "sorry, you can't do this ?";
  }
});
// stop right click
document.addEventListener('contextmenu', function(e) {
  e.preventDefault();
});