我已经查看并测试了大量有关如何操纵父级iframe内容的示例。然而,在为自己尝试时,我无法让它工作 - 无论是在我的测试环境中(都在同一个域和url上)还是在jsfiddle:
http://fiddle.jshell.net/3x6mncxf/
我在这里做错了什么?
答案 0 :(得分:2)
您只需稍微更改代码即可。 而不是load()方法使用ready()方法
$('iframe#frame').ready( function() {
$('iframe#frame').contents().find("head").append($("<style type='text/css'> body{display:none;} </style>"));
});
我已经分享了你的jsfiddle,你可以看到演示here
答案 1 :(得分:1)
基于你的jsfiddle,你应该使用ready()而不是load(),这是自JQuery v1.8以来已经弃用的。这段代码应该有效:
$('iframe#frame').load( function() {
$('iframe#frame').contents().find("head").append($("<style type='text/css'> body{display:none;} </style>"));
});
或者,如果您只想隐藏一个元素,则可以始终使用css()。
$('iframe#frame').contents().find("body").css("display","none");
答案 2 :(得分:1)
基于http://api.jquery.com/load-event/
的推荐尝试使用“ready”而不是“load”
$('iframe#frame').ready( function() { $('iframe#frame').contents().find("head").append($("<style type='text/css'> body{display:none;} </style>"));});
工作正常。除了几分钟我可以看到来自iframe的内容