当前位置:  开发笔记 > 前端 > 正文

从iframe更改父元素不起作用?

如何解决《从iframe更改父元素不起作用?》经验,为你挑选了1个好方法。

当我点击链接时,任何人都可以建议为什么这段代码不起作用.

链接在ifame中,我希望链接切换主页面中的菜单.


Fabrício Mat.. 6

jQuery的选择不选择在其他窗口的元素自然地,你必须要么访问jQuery的另一个窗口中查询到它的DOM或传递到其他窗口的文件的引用,以便jQuery的可以找到你所要寻找的.

第一种方法,iframe使用jQuery内部的jQuery 查询窗口内的元素iframe,使用父窗口的jQuery查询父窗口中的元素:

$(document).ready(function () {
    $("#scrollsetting").click(function () {
        window.parent.$('#quickmenu').toggle(300);
    });
});

小提琴

虽然,它并不总是需要加载jQuery的两倍,让我们说,你刚刚加载它的父窗口,那么你可以使用父母的jQuery的一个上下文选择将其设置为当前document,而它仍然默认为父窗口的文件省略时:

var $ = window.parent.$;
$(document).ready(function () {
    $("#scrollsetting", document).click(function () {
        $('#quickmenu').toggle(300);
    });
});

小提琴

同样,如果出于某种原因,您只在子窗口中使用jQuery,请在引用父窗口的文档时使用上下文选择器:

$("#scrollsetting").click(function () {
    $('#quickmenu', window.parent.document).toggle(300);
});

小提琴

PS.不介意我的inject包装.它只是一种以可读方式编写代码的方法,然后iframe以IIFE的形式将其文本注入- 我的字符串连接隐式调用Function.toString().

当然,如果您有其他依赖/插件绝对需要在框架页面中包含jQuery,您可以使用第一个最简单的解决方案,或者您认为更合适的解决方案.

PS2.如果任何读者在您的网页中尝试使用此代码时遇到问题,请记住这些代码iframe受同一来源警察的影响.也就是说,iframe当它src的域,协议或端口与父文档不匹配时,你无法访问它,反过来也是如此.



1> Fabrício Mat..:

jQuery的选择不选择在其他窗口的元素自然地,你必须要么访问jQuery的另一个窗口中查询到它的DOM或传递到其他窗口的文件的引用,以便jQuery的可以找到你所要寻找的.

第一种方法,iframe使用jQuery内部的jQuery 查询窗口内的元素iframe,使用父窗口的jQuery查询父窗口中的元素:

$(document).ready(function () {
    $("#scrollsetting").click(function () {
        window.parent.$('#quickmenu').toggle(300);
    });
});

小提琴

虽然,它并不总是需要加载jQuery的两倍,让我们说,你刚刚加载它的父窗口,那么你可以使用父母的jQuery的一个上下文选择将其设置为当前document,而它仍然默认为父窗口的文件省略时:

var $ = window.parent.$;
$(document).ready(function () {
    $("#scrollsetting", document).click(function () {
        $('#quickmenu').toggle(300);
    });
});

小提琴

同样,如果出于某种原因,您只在子窗口中使用jQuery,请在引用父窗口的文档时使用上下文选择器:

$("#scrollsetting").click(function () {
    $('#quickmenu', window.parent.document).toggle(300);
});

小提琴

PS.不介意我的inject包装.它只是一种以可读方式编写代码的方法,然后iframe以IIFE的形式将其文本注入- 我的字符串连接隐式调用Function.toString().

当然,如果您有其他依赖/插件绝对需要在框架页面中包含jQuery,您可以使用第一个最简单的解决方案,或者您认为更合适的解决方案.

PS2.如果任何读者在您的网页中尝试使用此代码时遇到问题,请记住这些代码iframe受同一来源警察的影响.也就是说,iframe当它src的域,协议或端口与父文档不匹配时,你无法访问它,反过来也是如此.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有