jquery
  • iframe
  • 2009-03-31 2 views 14 likes 
    14

    я использовал IFRAME, который выглядит следующим образом:изменения источник IFrame в IE с помощью Javascript

    <iframe style='width: 330px; height: 278px' scrolling='no' name="iframeId" class="advPlayer" id="iframeId" frameborder="0" src='../../player/iabpreview.php?adid=<?php echo $selectedAdIdx ?>&amp;autoPlay=true'></iframe> 
    

    Всякий раз, когда я нажимаю на <div>, я должен изменить источник фрейма. Я использую следующий код:

    if ($j.browser.msie) {    
        frames['iframeId'].window.location="../player/iabpreview.php?adid="+adId+"&autoPlay=true"; 
    }else { 
        $j(".advPlayer").eq(0).attr("src", "../player/iabpreview.php?adid="+adId+"&autoPlay=true");  
    } 
    

    Это работает с Firefox, но не с Internet Explorer.

    Какой код будет работать и для Internet Explorer?

    ответ

    13
    document.getElementById("iframeId").src = "Your URL here." 
    
    +0

    я попытался this..not работать в т – 2009-03-31 08:08:58

    +2

    да? Вы на 100% уверены? Это должно работать в любом браузере. –

    +0

    Для меня это не работает в Safari. Вместо этого он изменяет URL-адрес самой страницы. Фактически, все предлагаемые решения, похоже, это делают. Это большая тайна. – mcv

    1

    Сбор кадров возвращает объекты окна (или эквивалент). Вы хотите настроить таргетинг на объект документа; попробуйте сделать:.

    window.frames [ 'iframeId'] = document.location.href ....

    Это работает в IE, FF, Safari и так далее, поэтому нет необходимости для грязное обнаружение браузера.

    nb. IIRC ссылки на сбор кадров имя в IE, id в других браузерах, поэтому вам нужно как атрибут name, так и id, но у вас уже есть это, поэтому не беспокойтесь!

    0

    Просто используйте следующий код.

    var iframe = document.getElementById('IFRAME ID'); // just for clarity 
    iframe .src = 'URL here'; 
    

    Он должен работать с каждым браузером.

    +0

    getElementById для iframe не работал вообще.