easyXDM を使用して、コンテンツの高さに基づいて iframe の高さを動的にサイズ変更しようとしています。コードは 5 秒ごとに iframe の body.scrollheight をチェックする呼び出しを行います。ページの高さが変更された場合、iframe の高さは 5 秒ごとに更新されます。最初の呼び出しで機能します-iframeのサイズも適切に変更されます。問題は、iframe コンテンツの高さが変更された場合でも、プロバイダーが引き続きコンテンツの元の高さを返すことです。
コード:
消費者 (iframe を含むページ):
var socket = new easyXDM.Socket({
remote: "http://remoteDomain.ca/blahblah.html",
container: "embedded",
onMessage: function(message, origin){
alert(message); //continually alerts "542px" even when body.scrollheight
// has changed
document.getElementById('iframe').style.height = message + "px";
var t = setTimeout(function() {
socket.postMessage();
}, 5000);
},
onReady: function() {
socket.postMessage();
}
});
プロバイダー (iframe コンテンツ):
var socket = new easyXDM.Socket({
onMessage: function(message, origin){
socket.postMessage(document.body.scrollHeight);
}
});