Как обеспечить создание объекта YUI первым

Мне нравится песочница YUI, но у меня есть проблема с ней. Рассмотрим документ с iframe (например, ckedior, который я включил) со скриптом инициализации. Он всегда выполняется перед разделами внешнего документа (не знаю почему).

И мне нужно вызвать функцию, которая инициализируется в песочнице YUI в родительском документе. Но это никогда не может быть инициализировано, потому что выполнение начинается в iframe.

var getWordCount;

AUI().ready('aui-node', 'console', function(A) {

    getWordCount = function (htmlData) {
        var target = A.one('div.my-png-image');
        target.one('div:fist-child').set('text', strip(htmlData).trim().split(/\s+/).length);
    };
});

Без песочницы yui я только что объявил функцию в родительском документе, и даже если выполнение начнется в iframe, глобальная функция существовала бы и могла быть вызвана из iframe.

2 ответа

Решение

Возможно, проблема в AUI.ready, так как он выполняется только при загрузке всего HTML-кода. Это означает, что iFrame загрузится до того, как браузер вызовет событие.ready.

Вы можете попытаться проверить это, изменив событие AUI, которое вы используете для запуска своего кода, и поместите код, который вы хотите запустить, перед загрузкой iFrame за пределы AUI.ready.

Если вам нужен определенный элемент в dOM, который будет загружен перед запуском, вы можете попробовать проверить, загружен ли элемент, и затем запустить ваш скрипт, как в этом примере.

Не могли бы вы создать IFrame из AUI(). Готов?

Другие вопросы по тегам