mootools的。无法在iframe中获取DOM元素

时间:2012-04-13 06:53:47

标签: javascript iframe mootools

我有一个基于SocialEngine 4的网站,它使用moo-tools-1.2.5。 有一个iframe,其中有一些js在弹出窗口中打开(内置Smoothbox插件)。 我只能通过调用$$()来获取JS中包含的iframe的DOM元素,我需要使用像这样的kludge:

var context = (window.frames[0]) ? window.frames[0] : window;
context.$('user_email').set('value', context.$('1_1_30').get('value'));

这很奇怪,我猜这是意外的行为,因为标准的SocialEngine模块中的JS也不能在iframe中工作。

1 个答案:

答案 0 :(得分:1)

这是因为在1.2.5中,$$this.document.getElements的别名。

我建议你使用mootools-core中的IFrame wrapper class来扩展iframe,这样他们就可以得到mootoolsy,你可以这样做:

var context = this.document, // window
    iframe = document.getElement("iframe")

// if iframe found, change context to its contentDocument
iframe && (context = new IFrame("foo").contentDocument)

// wrapper.
!function() {
    console.log(this.getElements("div"))
}.call(context)