Ajax Перезагрузить iframe - PullRequest
       4

Ajax Перезагрузить iframe

7 голосов
/ 24 августа 2010

Как я могу перезагрузить iframe, используя jquery?

<html>

<head>
<script type="text/javascript" src="jquery-1.4.2.js" > </script>


<script type="text/javascript">
//Reload Iframe Function    
</script>

</head>

<body>
    <iframe name="f1" id = "f1" src="http://www.google.com.pk/search?q=usa+current+time&ie=utf-8&oe=utf-8&aq=t&client=firefox-a&rlz=1R1GGLL_en" width=500px height=250px>
    </iframe>

<button onClick="abc()"> Reload </button>

</body>

</html>

Ответы [ 2 ]

12 голосов
/ 24 августа 2010

Исходя из вашего комментария к посту Хаима, вы можете упростить то, что вы хотите:

$('#reload').click(function() {
    $('#f1').attr('src', $('#f1').attr('src'));
    return false;
});

Или

$('#reload').click(function() {
    $('#f1')[0].contentWindow.location.reload(true);
    return false;
});

Но, возможно, его ответы лучше соответствуют вашим потребностям.

UPDATE:

Я собрал рабочий пример, используя метод, который я предоставил выше. У меня есть <iframe> на одной странице, которая показывает другую страницу, которая печатает время.

<iframe> HTML (time.html):

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>

    The time is now <span id="time"></span>.

    <script type="text/javascript">

        $(document).ready(function() {
            $('#time').html((new Date()).toString());
        });

    </script>
</body>

И родительская страница HTML (test.html):

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>

    <iframe id="frame" src="file:///D:/Users/Cory/Desktop/time.html" width="500" height="250"></iframe>

    <button id="reload">Refresh</button>

    <script type="text/javascript">

        $(document).ready(function() {
            $('#reload').click(function() {
                $('#frame').attr('src', $('#frame').attr('src'));
                return false;
            });
        });

    </script>
</body>

Это прекрасно работает для меня в Firefox 3.6 и IE 7.

2 голосов
/ 24 августа 2010
$("#reload").click(function() {
            jQuery.each($("iframe"), function() {
                $(this).attr({
                    src: $(this).attr("src")
                });
            });
            return false;
        });

Это будет циклически проходить через каждый iFrame каждый раз, когда вы нажимаете на ссылку с классом reloadAds и устанавливаете для источника iFrame значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...