Узнайте, какой фрейм в DOM инициировал postMessage (в IE11)

В JavaScript, как только я получил событие «сообщение», есть ли способ узнать, какой кадр в модели DOM инициировал его? Это было бы полезно при отладке большого веб-приложения, где конкретное сообщение могло прийти в любом из 15-20 кадров. Событие сообщения имеет свойство источника, но если фрейм является междоменным, оно недоступно:

введите здесь описание изображения

Поскольку я знаю, что эти вещи различаются от браузера к браузеру, я спрашиваю конкретно об IE11.


person sashoalm    schedule 14.06.2018    source источник


Ответы (1)


Я нашел способ, который на самом деле работает даже при междоменном использовании — я добавляю элемент DOM, оценивая его в окне «Добавить контроль». Затем я ищу этот элемент в дереве DOM и таким образом вычисляю фрейм.

Например, этот код работает:

var foo_btn = document.createElement("BUTTON"); var foo_t = document.createTextNode("FOOBAR FOOBAR"); foo_btn.appendChild(foo_t); document.body.appendChild(foo_btn);

Вы просто нажимаете «Добавить наблюдение» и вставляете его, а затем, после его выполнения, вы можете искать FOOBAR FOOBAR в дереве DOM.

введите здесь описание изображения

person sashoalm    schedule 14.06.2018