Javascript iframe内容在由mootools操作时消失

Javascript iframe内容在由mootools操作时消失,javascript,iframe,mootools,Javascript,Iframe,Mootools,我有一个第三方(mootools)库来创建标签,我有谷歌双击发布者(dfp)来创建广告。dfp在一个iframe中创建广告,然后标签脚本获取iframe的一个文件夹,并与之“混合”来创建标签。iframe的内容在此过程中丢失 我正在寻找一种解决方法(在加载标签后尝试启动dfp,但随后谷歌脚本崩溃) iframe是从不同的域到父窗口的,因此任何试图对iframe中的元素执行操作的操作都将失败 addTab: function(text, title, content) { var grab

我有一个第三方(mootools)库来创建标签,我有谷歌双击发布者(dfp)来创建广告。dfp在一个iframe中创建广告,然后标签脚本获取iframe的一个文件夹,并与之“混合”来创建标签。iframe的内容在此过程中丢失

我正在寻找一种解决方法(在加载标签后尝试启动dfp,但随后谷歌脚本崩溃)

iframe是从不同的域到父窗口的,因此任何试图对iframe中的元素执行操作的操作都将失败

addTab: function(text, title, content) {
    var grab = $(content);
    var container = (grab || new Element('div'))
        .setStyle('display', 'none')
        .addClass(this.options.classContainer);
    this.wrapper.adopt(container);
    var pos = this.tabs.length;
    var evt = (this.options.hover) ? 'mouseenter' : 'click';
    var tab = {
        container: container,
        toggle: new Element('li').grab(new Element('a', {
            href: '#',
            title: title
        }).grab(
            new Element('span', {html: text})
        )).addEvent(evt, this.onClick.bindWithEvent(this, [pos])).inject(this.menu)
    };
    if (!grab && $type(content) == 'string') tab.url = content;
    this.tabs.push(tab);
    return this.fireEvent('onAdded', [tab.toggle, tab.container, pos]);
},

每当iframe或其祖先与DOM断开连接时,iframe的内容将被清除,当它或其祖先重新插入时,iframe将重新加载。Firefox和Webkit中出现了这种异常行为,但我认为iFrame不会在IE上重新加载

作为一种解决方法,您需要找到一种方法对代码进行重新排序,以便只在选项卡脚本完成对容器的操作后添加iframe

Chrome显然还有一个选项,如果您使用adoptNode而不是apendChild移动iframe,它会导致iframe不重新加载,但我不相信它是跨浏览器的


更多信息,请参见类似问题:

我假设
var-grab=$(内容)
是您的iFrame内容,对吗?跟踪代码时会发生什么?“抓取”是否真的像预期的那样包含iFrame内容?如果是这样的话,当您逐步完成您的函数时,它会丢失在哪里?