首页 > 解决方案 > 覆盖核心 JS 命令?

问题描述

我正在尝试修改/限制/阻止对浏览器的某些 JS 命令的访问。例如像这样的命令navigator.clipboard;但是,我不确定如何解决这个问题。

是否可以使用页面中注入的用户定义的 javascript 覆盖这些命令,或者我是否必须编辑浏览器的 javascript 编译器并为此从源代码重新编译?

我对浏览器不是很熟悉,想通过了解大致的方向来节省时间。谢谢

标签: javascriptbrowser

解决方案


首先navigator.clipboard不是一个函数,但这里是一个使用read函数的例子navigator.clipboard

navigator.clipboard.read = function (originalFunction) {
    return function (yourParamsYouWantForThisFunction) {
        // Do Stuff you wanna do before the real call. For example:
        console.log(yourParamsYouWantForThisFunction);

        // Call the original function
        return originalFunction.call();
    };
}(navigator.clipboard.read); // Pass the original function reference as a parameter

你可能想知道,为什么会有两种function说法:

  • 第一个在那里,这样我们就可以在运行时传递原始函数。如果我们不这样做,我们将无法访问原始navigator.clipboard.read功能。
  • 第二个函数是实际函数,稍后您将在调用navigator.clipboard.read().

推荐阅读