Изменение размера 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, отсюда.

Другие вопросы по тегам