Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как из фрейма открыть ссылку в другом фрейме? (iframe) (https://javascript.ru/forum/dom-window/35092-kak-iz-frejjma-otkryt-ssylku-v-drugom-frejjme-iframe.html)

makc0993 30.01.2013 13:41

Как из фрейма открыть ссылку в другом фрейме? (iframe)
 
Всем привет. Подскажите, пожалуйста, как из фрейма открыть ссылку на сайт в другом фрейме родительского окна? (iframe)

Deff 30.01.2013 13:45

makc0993,
<iframe name=frame1 style="display:none" onload="if(window.Vario!=1){window.Vario=1;}else this.style.display='block'"></iframe>
 <a href="http://javascript.ru/forum/" target=frame1>Клик</a>

Deff 30.01.2013 14:23

Цитата:

Сообщение от makc0993
Как из фрейма открыть ссылку в другом фрейме? (iframe)

Оба Фрейма на том же домене, что и главная ??

makc0993 30.01.2013 14:23

Deff,
да

Deff 30.01.2013 14:36

makc0993,
Пропишите ссылку во фрейме с target="Имя другого фрейма"

См пример

makc0993 30.01.2013 14:59

спасибо большое, снова помогли. жаль отзыв второй раз подряд оставить нельзя)

makc0993 30.01.2013 22:32

а можно ли как-то к ссылке добавить onclick="..."?
чтобы при клике в дочернем фрейме на ссылку выполнялась вышеуказанная функция в родительском окне? Простое добавление к ссылке не помогает( нужно что-то еще приписать...

Deff 31.01.2013 07:39

Цитата:

Сообщение от makc0993
Простое добавление к ссылке не помогает( нужно что-то еще приписать...

Не наю, - вот скриптом создал во фрейме 1 ссылку вида:
Цитата:

<a href="http://javascript.ru/forum/" target="frame2">Клик</a>

фрейм 2 имеет такой вид:
Цитата:

<iframe name="frame2" ></iframe>

Клик по cсылке в Первом фрейме открывает ссылку во втором фрейме :

makc0993,
<script>
function Funk0(aa) {
var a='<a href="http://javascript.ru/forum/" target="frame2">Клик</a><iframe name=frame3></iframe>'
var iframe = aa
var iframeDoc = iframe.contentWindow.document;
var b = iframeDoc.createElement('div');
var S = iframeDoc.createElement('script');
S.text='alert(parent.tst)';
b.innerHTML=a;//alert(b.innerHTML)
iframeDoc.body.appendChild(S);
iframeDoc.body.appendChild(b);
}
var tst ="frame1.frame3.document.body."
//setTimeout('alert("A")',1200)
//setTimeout('alert(frame1.frame3.document.body.innerHTML)',1200)
</script>
<iframe name=frame1 onload="Funk0(this)"></iframe>
<iframe name=frame2></iframe>

makc0993 31.01.2013 11:47

можно узнать что значит это условие? if(window.Vario!=1){window.Vario=1;}
У меня оно не выполняется... и сразу переходит к этому this.style.display='block'"

Deff 31.01.2013 11:51

makc0993,
фрейм срабатывает первый раз, когда еще пустой и адрес не прописан, исключаем раскрытие фрейма, при первичной(пустой) загрузке
Сейчас попробую переделать...

Deff 31.01.2013 12:03

<script type="text/javascript">
window.onload = function (){
 document.getElementById('frame1').removeAttribute("alt")
}
function Vario(a){
  if(!a.getAttribute("alt")){
  a.style.display='block'
}}
</script>
 <a href="http://javascript.ru/forum/" target=frame1>Клик</a><br /><br />
<iframe id="frame1" name=frame1 style="display:none" alt="0" onload="Vario(this)"></iframe>

makc0993 31.01.2013 12:03

он у меня итак пустой, но все равно почему-то не скрытый.

Deff 31.01.2013 12:06

makc0993,
Пост 11 - работает ?
(Изначально фрейм скрыт ?

makc0993 31.01.2013 12:10

Deff,
да

makc0993 31.01.2013 12:58

Deff,
спасибо! последний код работает как надо! :)

tsa 11.02.2013 15:11

Ребята, а можно этот код доработать что б он проверял есть ли ответ от сервера и если нет то пытался повторно загрузить страницу во фрейм?

Deff 11.02.2013 15:47

tsa,
фрейм с того же домена ?
И чем плох Aякс ? (Вроде как подгрузка контента фреймом - век динозавров ?

tsa 11.02.2013 17:31

Дело в том что есть сайт на котором нужно зарегистрироваться и в момент регистрации большой наплыв желающих - нужно постоянно жать F5 что б достучаться, а тут фрейм будет слать запросы к сайту пока не получит положительный запрос от сервера и загрузит таки нужную страницу.
Фрейм получается с другого домена

Deff 11.02.2013 17:35

Цитата:

Сообщение от tsa
тут фрейм будет слать запросы к сайту пока не получит положительный запрос

Cобственно фрейм с чужого домена можно только проанализировать: загрузилась страница или нет(контент не читаем из текущей страницы), и если пришла страница с 404 - один фиг она подгружена

tsa 11.02.2013 17:54

Цитата:

Сообщение от Deff (Сообщение 233183)
Cобственно фрейм с чужого домена можно только проанализировать: загрузилась страница или нет(контент не читаем из текущей страницы), и если пришла страница с 404 - один фиг она подгружена

вот если б сделать проверку по условию если пришла страница с ошибкой 404 то тогда повторить иначе все ок....

Deff 11.02.2013 18:02

tsa,
Низзя - кроссдомен полиция браузера не позволит

Есть извороты через анонимайзер, но хлопотно это и анонимайзеры сами не стабильны,

Feex 27.07.2016 15:44

Цитата:

Сообщение от Deff (Сообщение 230385)
makc0993,
<iframe name=frame1 style="display:none" onload="if(window.Vario!=1){window.Vario=1;}else this.style.display='block'"></iframe>
 <a href="http://javascript.ru/forum/" target=frame1>Клик</a>

Подскажите такой вариант:
У меня несколько ссылок вот с такой структурой:
<a href="http://site.ru/p.html?src=http://link1.m3u8" target=frame1>Клик1</a>
<a href="http://site.ru/p.html?src=http://link2.m3u8" target=frame1>Клик2</a>
<a href="http://site.ru/p.html?src=http://link3.m3u8" target=frame1>Клик3</a>
вот эта часть ссылки http://site.ru/p.html?src= постоянная.
а вот эта(хвост) http://link1.m3u8 в каждой ссылке разная.
Как сделать, чтобы во фрейме уже присутствовала первая часть ссылки, а хвост подставлялся при клике в зависимости от выбора ссылки?

Feex 01.10.2020 21:18

Не хотел создавать новую тему, пока не нашел то, что нужно)
У меня вопрос примерно такой же как в предыдущем посте:
есть такая схема:

<a href="https://link.ru/1" target=frame1> линк 1 </a>
<a href="https://link.ru/2" target=frame1> линк 2 </a>
<a href="https://link.ru/3" target=frame1> линк 3 </a>
<br><br>

<iframe width="1280" height="720" marginwidth="0" marginheight="0" scrolling="no" frameborder="1" name=frame1 onload="if(window.Vario!=1){window.Vario=1;}else this.style.display='block'"></iframe>

как сделать так, чтобы линк 1 изначально уже был во фрейме при загрузке страницы?
На данном этапе при загрузке страницы фрейм пустой, и только при кликах по линкам он заполняется ими. А нужно чтобы сразу линк 1 уже был во фрейме, и остальные линки тоже работали во фрейме при клике по ним.

Заранее извиняюсь, я далек пока от самостоятельного решения подобных задач)

voraa 01.10.2020 21:38

Установите атрибут src
<iframe width="1280" height="720" marginwidth="0" marginheight="0" scrolling="no" frameborder="1" name=frame1 onload="if(window.Vario!=1){window.Vario=1;}else this.style.display='block'" src="https://link.ru/1"></iframe>

Feex 01.10.2020 21:53

Цитата:

Сообщение от voraa (Сообщение 529384)
Установите атрибут src
<iframe width="1280" height="720" marginwidth="0" marginheight="0" scrolling="no" frameborder="1" name=frame1 onload="if(window.Vario!=1){window.Vario=1;}else this.style.display='block'" src="https://link.ru/1"></iframe>

Спасибо большое!) Я думал про src, но куда и как правильно воткнуть - не экспериментировал)


Часовой пояс GMT +3, время: 22:42.