как определить предков элемента с помощью jQuery в iframe (например, например, когда мы проверяем элемент для просмотра в firebug, он показывает полный путь) - PullRequest
0 голосов
/ 02 сентября 2011

У меня есть два iframe на html-странице

<table border="1" width="100%" height="100%">
  <tr>
    <th><iframe id="i1" width="100%" height="100%" src="/wordpress"></iframe></th>
    <th><iframe id="i2" width="100%" height="100%" src="/wordpress"></iframe></th>
  </tr>
</table>

Я дал событие click, чтобы изменить href второго iframe при нажатии любой ссылки в первом iframe, чтобы оба iframe загружали одну и ту же страницу

$('a').click(function(e){
     var id = $(this).attr('id');
     var href = $(this).attr('href');
     var path=$(this).parent();
     var ahash={
        'id':id,
        'href':href,
                'path':path
        };
     if (getFrameElement().id=="i1")
       window.parent.document.Aaddevent(e, ahash);
});

Href изменяется следующим способом путем доступа к идентификатору

document.sendevent=function(e, ahash){
   if (ahash.id!=undefined) {
      $('#i2', window.parent.document).contents().find('#'+ahash.id).trigger(e);
   } else {
      $('#i2', window.parent.document).attr('src', ahash.href);
   }
};

Теперь я хочу добавить «путь» в событие нажатия, которое показываетпуть предка элементов, когда это делается console.log (), но не во всех случаях, как требуется.Я не хочу менять src, получая доступ к идентификатору, как я делаю сейчас, потому что до определенного момента это работает нормально, но после этого, когда я хочу получить доступ к вкладке, href становится пустым, и я не получаю ожидаемый результат (означает просмотр страницыв течение второго iframe не меняется).Вместо этого я хочу использовать полный путь DOM, как указано в следующей ссылке

http://davecardwell.co.uk/javascript/jquery/plugins/jquery-getpath/

Я не могу выбрать путь и использовать его вместо доступа к идентификатору iframe для изменения src,Как я могу сделать это, чтобы я мог изменить путь второго iframe при нажатии любой вкладки или ссылки в первом iframe

1 Ответ

0 голосов
/ 02 сентября 2011

Похоже, у вас возникли проблемы с синхронизацией ваших фреймов - когда URL-адрес меняется на один, вы хотите, чтобы другой изменил его для соответствия. Вы можете упростить ситуацию, просто наблюдая за событием onload в iframe и, когда он срабатывает, измените location другого кадра, чтобы он соответствовал:

$("#i1").load(function (e) {
    var url = this.contentWindow.location.href;
    var frameLoc = $("#i2")[0].contentWindow.location;
    if (frameLoc.href != url) {
        frameLoc.href = url;
    }
});
...