![](/img/trans.png)
[英]getting instance of iframe (node) from within iframe (same domain)
[英]Get instance of iframe after getting event from it
我看到很多帖子可以通过iframe进行交流。 但是我的问题是在那之后。
我从iframe到父项中获取了事件,现在我想获取iframe的实例,以便我可以要求jquery根据从iframe传递来的味精来设置高度。
简而言之,我正在尝试定义一些常见的味精以从iframe与父对象进行通信。 信息之一就是改变它的高度。 因此,一种通用方法可以从1个或多个iframe接收消息并更改其高度。
父代码-----
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
// Listen to message from child window
eventer(messageEvent,function(e) {
msgData = $.parseJSON(e.data);
if(msgData.iframeload){
if(msgData.iframeload.height){
$(e.source).css('height',''+msgData.iframeload.height);
}
}
},false);
iframe代码----
var msgToParent = {
iframeload : {
height : window.document.body.scrollHeight
}
};
parent.postMessage(JSON.stringify(msgToParent),"*");
我的问题是我应该编写替换什么代码
$(e.source).css('height',''+msgData.iframeload.height);
如果我用iframe的ID更改它,那么它会起作用。 所以我想要一种获取iframe对象的方法,可以帮助我设置高度。
$('#<id of iframe>').css('height',''+msgData.iframeload.height);
好肮脏的头脑总是可行的... :)这是我做的,并在iframe中将src作为msg中的额外元素添加为document.location.href ...
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
// Listen to message from child window
eventer(messageEvent,function(e) {
msgData = $.parseJSON(e.data);
if(msgData.iframeload){
if(msgData.iframeload.height){
$.each($('iframe'),function(i,curIfra){
if(msgData.src==curIfra.src){
$(curIfra).css('height',''+msgData.iframeload.height);
}
});
}
}
},false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.