Изоляция рамки - PullRequest
       11

Изоляция рамки

3 голосов
/ 20 апреля 2010

Просто мысль, но будет ли использование IFRAME над DIV по существу сделать этот элемент изолированным от окна таким образом, чтобы медленные сценарии, выполняемые в IFRAME, не влияли на другие фреймы / окно? 1004 *

Ответы [ 2 ]

9 голосов
/ 20 апреля 2010

Да, для первой части iframe будет «сортировать» ваше окно от сценария в iframe. Однако к родительскому окну можно получить доступ через window.parent.

Для второй части: Нет, это не сделает его настолько медленным, что скрипты в iframe не будут влиять на другие фреймы / окна. Ваш главный объект окна и его дочерние узлы все работают в одном потоке. JavaScript является однопоточным [в этом случае игнорировать веб-работников, вы не можете передавать элементы dom между ними], поэтому единственная причина, по которой вы можете получить доступ к объекту окна parent-window / child-iframe, заключается в том, что они находятся в одном потоке.

Для краткого примера:

  • Создать страницу с именем main.html
  • На этой странице есть iframe src="iframe.html"
  • Рядом с iframe, есть кнопка с любым текстом, который вы хотите, мне все равно.
  • В iframe.html, window.onload = function(){ while(1){} };
  • Доступ к iframe.html. Вы заметите, что, когда вы наводите курсор мыши на кнопку, она не отвечает / перерисовывается. Это потому что браузер завис.

Источник:
Я тоже пытался получить многопоточность. Учился трудным путем =)

2 голосов
/ 19 ноября 2015

В новых браузерах вы можете использовать свойство песочницы, чтобы изолировать iframe от остальной части страницы

http://www.w3schools.com/tags/att_iframe_sandbox.asp

...