正在从内容脚本重写存储方法



是否有任何方法可以从内容脚本覆盖localStoragesessionStorage对象的方法?我试图通过从我的Chrome扩展(在加载页面之前运行的内容脚本)执行此代码来禁止内联脚本清除存储。代码为:

// ==UserScript==
// @name         StorageSaver
// @match        http://barbars.org/*
// @grant        none
// @run_at       startup
// ==/UserScript==
/* jshint -W097 */
'use strict';
// Your code here...
location.href = "javascript: localStorage.clear = function(){alert('local works!');}";
location.href = "javascript: sessionStorage.clear = function(){alert('session works!');}";

啊,我相信你正在尝试执行

window.localStorage.clear = function() {};

您的内容脚本中。您的内容脚本与页面的window不同,因此无法正常工作。一个解决方法很简单:

location.href = "javascript: localStorage.clear = function(){}";

或者注入CCD_ 4标签。

这将在页面中执行,而不是在内容脚本的范围内执行。

最新更新