PullRequest
       42

0 голосов
/ 25 марта 2019

У меня есть базовый iframe для встраивания содержимого HTML. Я применил обходной путь, чтобы заставить его работать в IE11, но не работает в Edge. Прекрасно работает в Chrome и FireFox. Половина моих пользователей на Edge ...

<iframe
    title="My iframe should work"
    class="large"
    id="my-slide-should-work"
    src="javascript: window.frameElement.getAttribute('srcdoc');" // this fixed it for IE11
    scrolling="no"
    srcdoc='<!DOCTYPE html><html>all the goodness</html>'>
</iframe>

Edge просто показывает пробел, ошибки в JS

SCRIPT5007: SCRIPT5007: Unable to get property 'getAttribute' of undefined or null reference
javascript: window.frameElement.getAttribute('srcdoc'); (1,2)

1 Ответ

0 голосов
/ 26 марта 2019

Похоже, window.frameElement имеет значение NULL и из-за этого он не может получить 'srcdoc' с помощью getAttribute .

Ниже приведена возможная причина, по которой он равен Null.

Если окно не встроено в другой документ или если документ в котором он встроен, имеет другое происхождение (например, был находится в другом домене), это значение равно нулю.

Таким образом, вы можете попробовать проверить вышеупомянутые критерии, и я предлагаю вам создать сегмент сценария и проверить, является ли window.frameElement пустым или нет. Если оно не равно нулю, попробуйте использовать GetAttribute , прежде чем присваивать его значение IFrame src.

Еще одна вещь, которую вы должны заметить: атрибут srcdoc не поддерживается в MS Edge. Таким образом, MS Edge не будет иметь никакого эффекта от этого атрибута.

Ссылки:

(1) Window.frameElement

(2) <'iframe'>: элемент Inline Frame

...