Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Фрейм + JS

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Andrey5555
Отправлено: 18 Января, 2010 - 12:14:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




<iframe id=\"iframe\" scrolling=\"no\" frameborder=\"1\" width=\"480\" height=\"250\" src=\"/tester.php\"></iframe>

Надо в этом же фрейме открыть другой сайт. Адрес сайта генерируется JS кодом.
Например таким: <script type="text/javascript" src="http://p60493.adskape.ru/adout.js?p=60493&t=1"></script>

Код выводит баннер, но при переходе по нему, открывается новое окно, а не во фрейме..

Есть ли выход кроме как вставлять еще один фрейм в тот, который уже есть?

Есть ли есть решение и оно на JS, то желательно jquery. Буду очень признателен за помощь.
 
 Top
Viper
Отправлено: 18 Января, 2010 - 12:32:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




на банер повесить
CODE (javascript):
скопировать код в буфер обмена
  1. $("selector").click(function(){
  2. var url = $("script > a").attr("href");
  3. window.location(url);
  4. });
  5.  

селектор для url подразумевает что после script идет <a href="banner_url"><img ... /></a>

думаю что как-то так.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
valenok
Отправлено: 18 Января, 2010 - 13:09:11
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Пропишите target="_self" у ссылки по которой ведет баннер.


-----
Truly yours, Sasha.
 
My status
 Top
JustUserR
Отправлено: 19 Января, 2010 - 00:56:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Andrey5555 Когда вы вставляете внешний JS-код с баннером то он генерирует данный баннер в вашем HTML-документе - таким образом вы можете вставить баннер в именованный div-слой и потом с помощью innerHTML поменять в баннере ссылку и добавить в нее target="_self" (А если баннер генерируется в родительском окне то target="имя_фрейма"


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Andrey5555
Отправлено: 20 Января, 2010 - 15:19:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




JustUserR а можно по этому вопросу поконкретнее? Буду очень признателен.

Я уже был поверил, что все получилось, но увы..

Начну сначала.


CODE (html):
скопировать код в буфер обмена
  1. <div align="center" id="adv"><iframe id="ifrm" scrolling="no" frameborder="1" width="480" height="250" src="/jobs.php"></iframe></div>



Файл jobs.php

CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript" src="/engine/js/jquery.js"></script>
  2. <script>
  3.  
  4. function getLink(){
  5.                                  
  6.                 var x = $("#adv a");
  7.                                 var x_len = x.length;
  8.                         var link_id = Math.floor(Math.random()*(x_len));
  9.                                 var link = x.get(link_id);
  10.                                 alert(link);
  11.                                 //$("#ifrm").get(0).src = "/tester2.php";
  12.                        
  13. }
  14.  
  15. window.setTimeout("getLink()", 3000);
  16. </script>
  17.  
  18. <div id="adv">
  19. echo "http://adskape.ru/unireg.php?d=1&ref=15168";
  20. </div>


Так вот во фрейме ifrm выводится файл jobs.php, в которым выводится ссылка. Jquery ловит ссылку и должен эту ссылку подставить в src фрейма ifrm. Далее на новой странице Jquery ловит тоже ссылку и и должен эту ссылку подставить в src фрейма ifrm. И так далее.


Вообщем, как я понимаю есть 2 выхода:
1: получить содержимое фрейма с помощью JS (Jquery)
2: передавать из jobs.php в обработчик на странице, который выводит сам фрейм.
 
 Top
JustUserR
Отправлено: 21 Января, 2010 - 11:26:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Andrey5555 Если файлы с iframe и PHP-скрипт jobs.php находятся в одном домене то задача достаточно несложная (Иначе придется городить различные walkaroundы для кросс-доменной связи Улыбка
По идее сначала вы переходите внутри iframeа по ссылке А это делается несложно - просто типа var turl=parent.frames["ifrm"].document.all["adv"].innerHTML; parent.frames["ifrm"].location.href=turl
Однако после того как вы перешли то iframe заполнился другой страницей и функция перехода перестанет выполняться - поэтому систему перехода лучше реализовать в двух iframe - один генерируется сслыки для показа а второй их показывает
Например первый iframe содержит такой код через пару секунд после загрузки var turl=parent.frames["ifrm"].document.all["adv"].innerHTML; parent.set_vurl(turl) и после этого parent.frames["ifrm"].location.reload и так со соедующей ссылкой
А тем временем родителськое окно принимает ссылки и отображает содержимое страниц во втором фрейме - с помощью прямой установки переданного адреса (Если из-за защиты от кросс-доменного обмена второй фрейм будет блокироваться то его можно удалять/создавать заново Улыбка
Можно по аналогии обойтись один iframe показывая в нем поочередно то ссылки то страницу на которую ссылка ссылалась


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Andrey5555
Отправлено: 21 Января, 2010 - 16:25:09
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Попробовал, как то это реализовать.. не вышло..

JustUserR не могли бы вы реализовать это в коде..
А то я видимо что то недопонял)
 
 Top
JustUserR
Отправлено: 21 Января, 2010 - 18:30:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Andrey5555 Привожу фрагменты кода которые я имел в виду
Base.html
CODE (htmlphp):
скопировать код в буфер обмена
  1. <script>
  2. var v_time=3000 // Укажите время в течение которого будет отображаться страница по ссылке в iframe
  3. window.st_load=function()
  4. {var ifr_html="<iframe id=\"ifrm\" scrolling=\"no\" frameborder=\"1\" width=\"480\" height=\"250\" src=\"about:blank\" onLoad=\"cv_load()\">"
  5. ifr_html+="</iframe></div>"
  6. document.all["ifr_cont"].innerHTML=ifr_html
  7. frames["ifrm"].location.href=="/jobs.php"
  8. }
  9. window.cv_load=function()
  10. {if((frames["ifrm"].location.href=="about:blank")||
  11. (frames["ifrm"].location.href=="/jobs.php")) {return true}
  12. else {}
  13. window.setTimeout("cv_clear()",v_time)
  14. }
  15. window.cv_clear=function()
  16. {document.all["ifr_cont"].innerHTML=""
  17. window.setTimeout("st_load()",100)
  18. }
  19. window.setTimeout("st_load()",100)
  20. </script>
  21. <div id="ifr_cont">
  22. </div>

Jobs.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <script>
  2. window.frl_load=function()
  3. {var turl=parent.frames["ifrm"].document.all["adv"].innerHTML;
  4. parent.frames["ifrm"].location.href=turl}
  5. window.setTimeout("frl_load()",1000)
  6. </script>
  7. <div id=adv">
  8. Тут URL ссылки
  9. </div>

Суть такого кода заключается как раз в попеременном переходе по ссылкам и обновлении страницы jobs.php для получения новой ссылки
По идее должно работать - елси что не получится то переделаем под два независимых iframe и еще кое-что Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Andrey5555
Отправлено: 22 Января, 2010 - 12:57:41
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Так-с.. я понял, но тут сопутствующий вопрос назрел.

var frmbody = frames["ifrm"].document.body.innerHTML; //получает тело фрейма

как из этого тела, получить ссылки?

Пробовал приделать frmbody.find("a");

Но как понял, что это неправильно..

Подскажите плиз...
 
 Top
JustUserR
Отправлено: 23 Января, 2010 - 18:00:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Andrey5555 Вообще в строке кода основного окна можно сделать примерно вот так
CODE (text):
скопировать код в буфер обмена
  1. if(frames["ifrm"].location.href=="/jobs.php")) {var frmbody = frames["ifrm"].document.body.innerHTML
  2. // И далее выполняем поиск с помощью регулярного выражения типа frmbody.search(//)
  3. var frmlinks=frames["ifrm"].document.links
  4. var allvlink=new Array()
  5. for(var i=0;i<frmlinks.length;i++)
  6. {allvlink.push(frmlinks[i].href)}
  7. // Получили в массиве allvlink все адресы ссылок
  8. return true}
  9.  


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB