我喜欢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 sandbox,我只是在父文档中声明了一个函数,即使在iframe中执行起来很难,全局函数也会存在,并且可以从iframe中调用。
答案 0 :(得分:1)
问题可能是AUI.ready,因为它只在加载整个HTML时执行。这意味着iFrame会在浏览器触发.ready-event之前加载。
您可以尝试通过更改用于触发代码的AUI事件来测试此操作,并在iFrame-load之前将要运行的代码放在AUI.ready之外。
如果在运行之前需要加载dOM中的某个元素,可以尝试检查元素是否已加载,然后运行脚本,如in this example。
答案 1 :(得分:0)
你是否可以在AUI()中创建IFrame?ready?