我需要在两个自主用户脚本之间传递数据 - 理想情况下不接触unsafeWindow
对象 - 我认为使用自定义事件将是可行的方法。我想到了这样的事情(让我们为了示例的目的而忽略 MSIE 模型):
addEventListener("customEvent", function(e) {
alert(e.data);
});
var custom = document.createEvent("HTMLEvents");
custom.initEvent("customEvent", true, true);
custom.data = "Some data...";
dispatchEvent(custom);
这在标准 Javascript 环境和一个用户脚本中运行良好,但是当用户脚本触发事件并在其外部或另一个用户脚本内部捕获时,该data
属性undefined
在 Chromium 中。我想我可以将传递的数据保存在sessionStorage
. 还有其他优雅的解决方案吗?完美需要并且可以实现,我能感觉到。