【发布时间】:2016-01-13 03:51:55
【问题描述】:
有没有办法从内容脚本中覆盖localStorage 和sessionStorage 对象的方法?我试图通过从我的 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!');}";
【问题讨论】:
-
你可以在不调用任何方法的情况下清除localStorage,使用delete+for-in...
-
您的代码在此页面的控制台中运行,因此可以覆盖 clear() 方法,听起来好像还没有完成。
-
我确信每次从位于
<head>部分的内联脚本刷新页面时,都会清除存储空间。这个脚本使用.clear()方法来清除两个存储。 -
您需要 localStorage 才能运行吗?你也许可以 freeze() 它
-
我需要的是防止我的键值对在页面刷新后被清除。我的脚本正在使用它们来知道在下一页刷新时要做什么,而内联脚本正在擦除它们。
标签: javascript local-storage overriding content-script session-storage