2010-09-09 2 views
2

Привет, у меня есть проблема. У меня есть страница, в которой у меня внутри iframe. На родительской странице (не в iframe) я хочу создать кнопки браузера назад, fw, refresh и home page. Снова, fw, кнопки главной страницы почти в порядке. Кнопка обновления не работает. код ниже:Кнопка обновления для jquery iframe или javascript

<a href="javascript:;" onClick="parent.document.getElementById('my_frame').location.reload();"> 

Я также должен сказать, что мой адрес не меняется я имею в виду я использовал метод пост и URL всегда одинакова. Любые ответы jquery или javascript ???

Спасибо advence, им действительно отчаянные

+0

я не вижу никакого кода – Munzilla

+0

Просто добавьте 4 пробела перед любым кодом и не вставляйте код в ответ (как и раньше) ИЛИ комментарий! – 2ndkauboy

ответ

0

Вы пробовали это: http://www.byronsorrells.com/web-development/reloading-an-iframe-with-jquery/

$(".reloadAds").click(function() { 
     jQuery.each($("iframe"), function() { 
      $(this).attr({ 
       src: $(this).attr("src") 
      }); 
     }); 
     return false; 
    }); 
+0

Да, но проблема в том, что когда я нажимаю кнопку обновления, из-за причины, что URL-адрес не меняется, он снова загружает src, который является домашней страницей сайта iframe ... – Xara

0

Почему бы вам не сделать это так:

<a href="javascript:document.getElementById('my_frame').location.reload();"> 

Вы не вам нужен onclick, если у вас уже есть href без какой-либо другой цели.

+0

Я тоже попробовал это, но это не делает это – Xara

0

Попробуйте следующее:

var iframe = document.getElementById('your-iframe'); 
iframe.src = iframe.src; 
3

Хорошо, давайте рассмотрим некоторые основные правила первых

  1. Чтобы получить доступ к window объекта фрейма, пройти через frames коллекции.
  2. Дайте Компоновка кадра name
  3. Если части вашего пользовательского интерфейса не работают без JavaScript включен, то не ставьте их в разметке - добавить их с JavaScript
  4. Не следует использовать анкерные элементы для управления, не гиперссылок

На практике:

<html> 
<head> 
    <title>Test Page</title> 

    <style type="text/css"> 
    #toolbar button { 
     cursor: pointer; 
    } 
    </style> 

    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script type="text/javascript"> 

    $(function() 
    { 
    var $iframe = $('#my_frame'); 
    var $toolbar = $('<div/>').attr('id', 'toolbar'); 
    var frame = self.frames['my_frame']; 

    $toolbar.append(
     $('<button/>') 
     .text('Home') 
     .click(function(event) 
     { 
     event.preventDefault(); 
     frame.location.href = 'http://www.google.com'; 
     }) 
    ); 

    $toolbar.append(
     $('<button/>') 
     .text('Back') 
     .click(function(event) 
     { 
     event.preventDefault(); 
     history.back(); 
     }) 
    ); 

    $toolbar.append(
     $('<button/>') 
     .text('Forward') 
     .click(function(event) 
     { 
     event.preventDefault(); 
     frame.history.forward(); 
     }) 
    ); 

    $toolbar.append(
     $('<button/>') 
     .text('Refresh') 
     .click(function(event) 
     { 
     event.preventDefault(); 
     frame.location.reload(); 
     }) 
    ); 

    $toolbar.insertBefore($iframe); 

    }); 

    </script> 
</head> 

<body> 

    <iframe id="my_frame" name="my_frame" width="400" height="300" src="http://www.google.com"></iframe> 

</body> 
</html> 
+0

Привет и благодарю вас за ваше время! – Xara

+0

Я пробовал код, который вы написали, но я думаю, что iframe не перезагружает снова. У вашего кода также есть такая же проблема, как у меня. Когда я нажимаю кнопку «Назад», я хочу только вернуться к iframe. Поэтому, когда история iframe заканчивается, она возвращается на главную страницу. Я googled, и я нашел хеш-функцию stg. Это не работает на меня из-за изменения URL-адреса. – Xara

+0

Это невозможно. Объект 'history' имеет свойство' length', но нет способа определить, где в истории вы сейчас находитесь, для чего потребуется информация для выполнения такой задачи. И обновление * работает *. –

Смежные вопросы