最佳答案
我需要在两个自主用户脚本之间传递数据——理想情况下不需要接触 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
属性是 Chromium 中的 undefined
。我想我可以只保存在 sessionStorage
中传递的数据,但它远非无缝。还有别的好办法吗?完美的需求是可以实现的,我能感觉到。