Добавление слушателя события iframe

Одной основной характеристикой на функциональном языке является понятие первоклассных функций. Идея состоит в том, что можно передать функции как параметры к другим функциям и возвратить их как значения.

Функциональное программирование включает код записи, который не изменяет состояние. Основная причина того, чтобы сделать так - то, так, чтобы последовательные вызовы к функции привели к тому же результату. Можно записать функциональный код на любом языке, который поддерживает первоклассные функции, но существуют некоторые языки, как Haskell, которые не позволяют Вам изменять состояние. На самом деле Вы, как предполагается, не делаете побочных эффектов (как распечатывание текста) вообще - который кажется, что это могло быть абсолютно бесполезно.

Haskell вместо этого использует другой подход к IO: монады. Это объекты, которые содержат желаемую операцию IO, которая будет выполняться верхним уровнем Вашего интерпретатора. На любом другом уровне они - просто объекты в системе.

, Что обеспечивают преимущества функциональное программирование? Функциональное программирование позволяет кодировать с меньшим количеством потенциалов для ошибок, потому что каждый компонент полностью изолируется. Кроме того, использование рекурсии и первоклассных функций допускает простые доказательства правильности, которые обычно зеркально отражают структуру кода.

10
задан Ronald 8 September 2009 в 14:11
поделиться

3 ответа

Причины сбоя могут быть следующими: -

  1. URL-адрес, на который iframe направлен из другого домена в качестве контейнера, поэтому код предотвращается междоменной блокировкой сценария.
  2. Код выполняется до загрузки содержимого фрейма
2
ответ дан 3 December 2019 в 21:22
поделиться

Если вы серьезно занимаетесь iframe в Ext, вам следует изучить пользовательское расширение ManagedIFrame:

http://www.extjs.com/forum/showthread.php?t= 40961

Он имеет встроенные события и обмен сообщениями между кадрами, а также многие другие преимущества.

4
ответ дан 3 December 2019 в 21:22
поделиться

Я никогда не пытался обрабатывать событие afterLayout, кроме кода, совместимого с браузером. вы будете использовать ( iframe.contentWindow || iframe.contentDocument ) вместо iframe.contentWindow .

попробуйте что-нибудь вроде

var iframe = document.getElementsByTagName('iframe')[0],
    iDoc = iframe.contentWindow     // sometimes glamorous naming of variable
        || iframe.contentDocument;  // makes your code working :)
if (iDoc.document) {
    iDoc = iDoc.document;
    iDoc.body.addEventListener('afterLayout', function(){
                        console.log('works');
                });
};

Надеюсь, это поможет.

11
ответ дан 3 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: