Почему appendChild узла скрипта не выполняется изначально - PullRequest
1 голос
/ 04 февраля 2011

Мой следующий код будет оповещать Firebug только один раз, используя приложение jQuery.Я был совершенно уверен, что каждый раз, когда тег сценария попадает в DOM, он выполняется немедленно - iframe или нет.

var iframe        = document.getElementById('myiframe'),
    iframe_window = iframe.contentWindow,
    iframe_head   = iframe_window.document.getElementsByTagName( 'head' )[0],
    script        = iframe_window.document.createElement('script');

script.type      = 'text/javascript';
script.innerHTML = "alert(1);";

iframe_head.appendChild( script.cloneNode( true ) );
$(iframe_head).append( script.cloneNode( true ));

Для дополнительной путаницы я использовал jsfiddle (http://jsfiddle.net/vs8KV/) и дважды выдал предупреждениеКак вы думаете, это проблема Firebug или что-то еще?

1 Ответ

0 голосов
/ 07 февраля 2011

Кажется, я пропустил важную деталь ... iframe - это RTE.Это означает, что в iframe включен designMode, что, в свою очередь, запрещает запуск JS внутри.До сегодняшнего дня я понятия не имел об этом.

Казалось бы , что JS выполнял jquery, вместо этого выполняя в родительском.Если бы я консольно зарегистрировал окно из jquery.append, оно показало бы родительское окно, а не iframe.

...