Фрейм + JS

WA
На сайте с 23.01.2009
Offline
101
1015

<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. Буду очень признателен за помощь.

I
На сайте с 21.02.2008
Offline
117
#1

Вот так думаю.

<iframe src="http://site1.ru/" id="ifrm"></iframe>

<a href="#" onclick="getElementById('ifrm').src = 'http://site2.ru/';">Сменить урл фрейма</a>
[Удален]
#2

<iframe name="a"></iframe>

<a href="http://google.com" target="a">asdasd</a>

[Удален]
#3
ippoman:
Вот так думаю.

а так

MOP1:
<iframe name="a"></iframe>

<a href="http://google.com" target="a">asdasd</a>

правильно :)

WA
На сайте с 23.01.2009
Offline
101
#4

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

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

<div align="center" id="adv"><iframe id="ifrm" scrolling="no" frameborder="1" width="480" height="250" src="/jobs.php"></iframe></div>

Файл jobs.php

<script type="text/javascript" src="/engine/js/jquery.js"></script>

<script>

function getLink(){

var x = $("#adv a");
var x_len = x.length;
var link_id = Math.floor(Math.random()*(x_len));
var link = x.get(link_id);
alert(link);
//$("#ifrm").get(0).src = "/tester2.php";

}

window.setTimeout("getLink()", 3000);
</script>

<div id="adv">
echo "http://adskape.ru/unireg.php?d=1&ref=15168";
</div>

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

Надеюсь на вашу помощь в этом нелегком деле.

PS. Админ, не приписывай плиз нарушения за орфографию, неточность или еще что-то..

Просто не знаю уже как изложить суть траблы..

SI
На сайте с 19.12.2007
Offline
77
#5

jquery хорошо, но без минимального фундамента - как обезьяна за рулем

bearman

правильно... ТС нужно чтобы работало как нужно, а правильно это, или не неправильно... (:

рисуем, верстаем, кодим и крутим ...аа, да, еще принимаем заказы (:
WA
На сайте с 23.01.2009
Offline
101
#6

Та просто решение, которое предложили оно не подходит для даного случая.

Вообщем, как я понимаю есть 2 выхода:

1: получить содержимое фрейма с помощью JS (Jquery)

2: передавать из jobs.php в обработчик на странице, который выводит сам фрейм.

Подскажите пожалуйста по одному из вариантов, по моему вопросу..

[Удален]
#7

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

WA
На сайте с 23.01.2009
Offline
101
#8

Да, конечно, домены разные.

А что на счет 2ого варианта? Можно ли как то реализовать?

SplashS
На сайте с 18.01.2010
Offline
4
#9

WebAction, вы вырываете проблему из контекста, поэтому вам не могут помочь :)

Если я правильно понял, то вы хотите, чтобы у вас во фрейме каждые 3 секунды подгружался какой-то новый сайт. Какой именно неизвестно - url должен прийти с сервера.

Эту задачу можно решить следующим способом:

Файл jobs.php


<?
//Конкретный URL нужно предварительно вычислить. Здесь как раз понадобится функция rand()
header('Location: http://adskape.ru/unireg.php?d=1&ref=15168");
?>

И основной файл


<div align="center" id="adv"><iframe id="ifrm" scrolling="no" frameborder="1" width="480" height="250" src="about:blank"></iframe></div>
<script type="text/javascript">
function goLink(){
//А здесь random чтобы не было проблем с кэшем
getElementById('ifrm').src = '/jobs.php?' + Math.random();
window.setTimeout("getLink()", 3000);
}

getLink();
</script>

Каждые 3 секунды фрейм будет перезагружаться.

Компьютер ДелаетИзВсехНасДураков (с)
WA
На сайте с 23.01.2009
Offline
101
#10

Вообщем, все.. Решил задачу упростить)

Теперь елементарная помощь надо.

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

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

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

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

Подскажите плиз...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий