使用Chrome扩展程序修改或阻止内容JS功能

问题描述 投票:0回答:1

我需要阻止写入LocalStorage。所以当调用函数localstorage.setItem()时,我需要改变它的行为或阻塞。我在清单的"content_scripts"中有我的content.js

这里有可能的方法(我找不到所有的东西):

1)存储更改的事件处理程序

我试过了

window.addEventListener('storage', function (event) {
    console.log("storage event occured here");
});

但我需要在同一个标​​签中检测函数调用(通过扩展名)。

2)覆盖系统功能localstorage.setItem()

如果我将在控制台中写,它的工作原理

localStorage.setItem = function(){
    console.log('modified');
  }

但不是如果在content.js中

还试图为content_scripts添加清单"run_at" : "document_start"

3)setItem函数调用的事件处理程序

是否可以为自定义函数调用设置触发器/处理程序?我知道像click,mouseover这样的处理程序..但是在函数调用上 - 不是。

javascript jquery google-chrome-extension event-handling override
1个回答
0
投票

答案是通过内容脚本注入脚本文件。感谢wOxxOm

content.js

var inj = document.createElement('script');
inj.src = chrome.runtime.getURL('blockaccess.js');
inj.onload = function() {
    this.remove();
};
(document.head || document.documentElement).appendChild(inj);

blockaccess.js

Storage.setItem = localStorage.setItem = sessionStorage.setItem = function(){
  console.log('Blocked Storage setItem()');
}
© www.soinside.com 2019 - 2024. All rights reserved.