javascript - 覆盖核心 JS 命令?
问题描述
我正在尝试修改/限制/阻止对浏览器的某些 JS 命令的访问。例如像这样的命令navigator.clipboard
;但是,我不确定如何解决这个问题。
是否可以使用页面中注入的用户定义的 javascript 覆盖这些命令,或者我是否必须编辑浏览器的 javascript 编译器并为此从源代码重新编译?
我对浏览器不是很熟悉,想通过了解大致的方向来节省时间。谢谢
解决方案
首先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()
.
推荐阅读
- android - 有什么方法可以检测用户关闭 WIFI 或数据的确切时间?
- c# - 为 AspNet 身份令牌设置计数器
- ruby - 使 ruby 可用于 Debian9 映像的问题
- php - 如何在 wordpress 网站的主页上传输 GET 请求?
- allure - 使用 Jenkins 的倾城报告显示错误的数据
- r - 如何修复“数学函数的非数字参数”
- database - Oracle DB 中的任何日志/审计表都包含用于审计目的的每日事务详细信息?
- r - 如何滞后和计算列表中每个数据框的差异?
- javascript - Datepicker CSS 已加载,但似乎未应用
- spring-boot - Gitlab ci - 工件应用程序 jar 的差异