Изменение размера IFrame с easyXDM
Я передаю свой код iFrame клиентам, чтобы они могли отображать динамический контент с моего сайта. Я бы хотел, чтобы размер iFrame, размещенного на их странице, изменялся в соответствии с моим содержанием. Я следовал инструкциям с сайта easyXDM, но, может быть, мне чего-то не хватает.
Я не получаю никаких ошибок, но iFrame сохраняет высоту по умолчанию (150 пикселей). Код, который я даю своему клиентскому сайту:
<script src="http://test.pronetis.net/SNM.CMS/js/easyXDM/easyXDM.debug.js" type="text/javascript"></script>
<script type="text/javascript">
var transport = new easyXDM.Socket({
remote: "http://www.lipsum.com/",
container: "container",
onMessage: function (message, origin) {
this.container.getElementsByTagName("iframe")[0].style.height = message + "px";
}
});
</script>
<div id="container"></div>
И это код, который идет в документе, который я хочу вставить:
<script src="http://test.pronetis.net/SNM.CMS/js/easyXDM/easyXDM.debug.js" type="text/javascript"></script>
<script type="text/javascript">
var socket = new easyXDM.Socket({
onReady: function () { socket.postMessage(document.body.scrollHeight) }
});
</script>
Я надеюсь, что есть что-то простое, я делаю неправильно...
1 ответ
Это очень поздно, но вы еще не добавили резервные методы транспортировки. Поместите файл name.html и файл easyxdm.swf в корень вашего веб-сайта, а затем используйте исправленный код ниже
Сайт клиентов
Добавьте свойство remoteHelper, чтобы оно указывало на ваш name.html, и добавьте свойство swf, чтобы оно указывало на ваш файл easyxdm.swf.
<div id="container"></div>
<script src="http://test.pronetis.net/SNM.CMS/js/easyXDM/easyXDM.debug.js" type="text/javascript"></script>
<script type="text/javascript">
var transport = new easyXDM.Socket({
remote: "http://www.lipsum.com/",
remoteHelper: "http://www.lipsum.com/name.html",
swf: "http://www.lipsum.com/easyxdm.swf",
container: "container",
onMessage: function (message, origin) {
this.container.getElementsByTagName("iframe")[0].style.height = message + "px";
}
});
</script>
Ваш сайт
Добавьте свойство local, чтобы оно указывало на name.html в вашем корне.
<script type="text/javascript">
var socket = new easyXDM.Socket({
local: "name.html",
onReady: function () {
socket.postMessage(document.body.scrollHeight);
}
});
</script>
Вы также должны убедиться, что фрагмент на вашем веб-сайте находится под всем содержимым вашей страницы, поэтому, вероятно, лучше поместить его прямо перед </body>
тег.
Вы можете скачать последнюю версию easyxdm, которая содержит name.html и easyxdm.swf, отсюда.