Динамически создавать IFrame и добавлять к неизвестному родителю

0

В настоящее время я создаю виджет, который будет асинхронно загружать JS файл, который, в свою очередь, будет создавать IFrame соответственно, моя текущая проблема - это местоположение, где создается Iframe. Мне нужно создать IFrame в родительский узел, который неизвестен.

Проблема в том, что загружаемая JS (везде, где она вставлена на странице example.html) не загружает IFrame в родительский элемент. Мне нужно, чтобы он последовательно загружал IFrame в родительский элемент, где наклеен фрагмент JS.

example.html

<script type="text/javascript">
    var uid = "1";
    (function(){
    var m = document.createElement('script');
    m.type = 'text/javascript';
    m.async = 'true';
    m.src = 'http://www.site.com/widget/widget.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(m, s);
})();
</script>

Widget.js

(function createFrame(){
    var iframe = document.createElement("iframe");
    iframe.id = "jobBoard";

   iframe.width = 100+"%"; 
   iframe.height = 100+"%";
   iframe.frameborder = "0";
   iframe.scrolling = "no";
   iframe.marginheight="0" ;
   iframe.marginwidth="0";
   iframe.frameborder="0"

    iframe.setAttribute("style","width:100%; height:100%; background-color:#FFF; border:none;padding:0 0 0 0; overflow-y: hidden; overflow:; -ms-overflow-y: hidden; -ms-overflow-x: hidden;");
    loc = "http://www.site.com/widget/open-jobs?uid=" + uid;
    iframe.src = loc;

    var scriptTags = document.getElementsByTagName('script');
    var i = scriptTags.length;
    while (i--) {
    if (scriptTags[i].src.indexOf('site.com') >= 0) {
              alert(scriptTags[i].parentNode)

        scriptTags[i].parentNode.appendChild(iframe);

        i = 0;
    }
    }

})();
  • 0
    Функция выдает синтаксическую ошибку ... remove )(); с конца
  • 0
    Извините, отсутствовала "(" перед функцией. Она должна выполняться сейчас.
Показать ещё 3 комментария
Теги:
asynchronous

1 ответ

0

То, что вы хотите, - document.currentScript. Не самая большая поддержка.

Позвольте мне что-то взломать:

Вояла скрипка с внешним JS.

  • 0
    Спасибо за быструю Fiddle, выглядит хорошо, но поддержки браузера на это, похоже, не хватает :( Должен быть сильно поддерживаемый способ создания Iframe / Div / Etc в родительском месте, где находится JS-скрипт?
  • 0
    Не от внешнего JS.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню