Мне нужно передать данные между двумя автономными пользовательскими сценариями - в идеале, без прикосновения к объекту 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
в хроме.Полагаю, я мог бы просто сохранить переданные данные в sessionStorage
, но это далеко не без проблем.Какие-нибудь другие элегантные решения, господа и господа?Совершенство нужно и можно достичь, я это чувствую.