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

    Tôi đã sử dụng một khung nội tuyến mà trông như thế này:thay đổi nguồn iframe trong tức là sử dụng 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> 
    

    Bất cứ khi nào tôi bấm vào một <div>, tôi phải thay đổi nguồn gốc của các iframe. Tôi đang sử dụng mã sau:

    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");  
    } 
    

    Điều này làm việc với Firefox, nhưng không phải với Internet Explorer.

    Mã nào cũng sẽ hoạt động cho Internet Explorer?

    Trả lời

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

    tôi đã cố gắng làm việc trong this..not tức –

    +2

    Huh? Bạn có chắc chắn 100% không? Điều này sẽ làm việc trong bất kỳ broswer. –

    +0

    Đối với tôi, nó không hoạt động trong Safari. Thay vào đó, nó thay đổi URL của trang. Trong thực tế, tất cả các giải pháp được đăng ở đây dường như làm điều đó. Đó là một bí ẩn lớn. – mcv

    1

    Bộ sưu tập khung trả về đối tượng cửa sổ (hoặc tương đương). Bạn muốn nhắm mục tiêu đối tượng tài liệu; cố gắng thực hiện:.

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

    này hoạt động trong IE, FF, Safari, và như vậy, vì vậy không cần cho phát hiện trình duyệt lộn xộn quá.

    nb. IIRC tham chiếu bộ sưu tập khung tên trong IE, id trong các trình duyệt khác, vì vậy bạn cần cả tên và thuộc tính id trên - nhưng bạn đã có, nên đừng lo!

    0

    Chỉ cần sử dụng mã sau đây.

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

    Nó sẽ hoạt động với mọi trình duyệt.

    +0

    getElementById cho khung nội tuyến không hoạt động. Tôi phải đề cập đến nó bằng "cửa sổ.