Есть ли способ передать дополнительные данные через настраиваемые события?

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

56
задан Witiko 23 February 2012 в 05:55
поделиться