0

我喜欢 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 中调用。

4

2 回答 2

1

问题可能是 AUI.ready,因为它仅在加载整个 HTML 时执行。这意味着 iFrame 将在浏览器触发 .ready 事件之前加载。

您可以尝试通过更改用于触发代码的 AUI 事件来测试这一点,并将要运行的代码放在 iFrame-load 之前的 AUI.ready 之外。

如果您需要在运行之前加载 dom 中的某个元素,您可以尝试检查该元素是否已加载,然后运行您的脚本,就像在这个例子中一样。

于 2011-02-22T11:50:19.723 回答
0

您能否从 AUI().ready 中创建 IFrame?

于 2011-03-23T06:16:24.830 回答