我有一个基于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中工作。
答案 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)