SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Вземане на релания URI на външен домейн в iFrame?

didalko

New member
Здравейте,
има ли някой решение на въпроса как става това? В много форуми се споменава, че това е не възможно поради security reasons на браузърите. Обаче аз съм виждал направена тази функционалност на един сайт, но все още не съм много сигурен точно как е направено.
А иначе не работещи примери са следните:

alert(document.getElementById('iframe').contentDocument.location.href);
alert(document.getElementById('iframe').document.location.href);

<body>
<Iframe id="iframe" src="http://www.google.com" width="950" height="600"></Iframe>
</body>

Не става и не става селекцията по този начин на браузнатите(текущо заредения URL) линкове във iFrame-а.

Ако някой има някаква работеща идея, с удоволстие бих я разгледал!
Поздрави!
 
Re: Вземане на релания URI на външен домейн в iFrame?

Код:
var realDomain=top.document.domain;
var realURL=top.document.location;

Първото ти дава домейна на най-външния фрейм, второто ти дава неговия пълен адрес. До колкото разбрах, на теб ти трябва второто. Тествано е от мен и работи на всякакви браузъри. Стандартизирано е по W3C.
 
Re: Вземане на релания URI на външен домейн в iFrame?

ОК! Имаш iFrame, на който атрибута src си му задал определен URI от външен домейн. До тук добре.
Проблемът е следния: Съдържанието на iFrame-а тоест страницата заредена в него се явява външен ресурс за текущия домейн където ползвате iFrame-а. Ако клиента продължи да браузва т.е. да клика по линковете на заредената страница( от външния домейн), която се явява съдържание на въпросния iFrame, то всеки ново зареден URI в съдържанието на iFrame-а ще бъде различен от първоначало подадения като src на iFrame-а.
Въпросът е следния: Как може да се вземе (да се разбере, добие и т.н.) новозаредения URI на страницата в iFrame-а, подадена в резултат от кликване на юзъра по линк вътре? ;D
 
Re: Вземане на релания URI на външен домейн в iFrame?

Код:
var frameURI= window.frames[iframeName].location;
Не ти ли работи? Или това?
Код:
var frameURI= document.getElementById(iframeId).src;

Ако имаш проблем и с тези пробвай да преименуваш iframe-то ако случайно си го кръстил "iframe";
 
Последно редактирано:
Re: Вземане на релания URI на външен домейн в iFrame?

Още в първият пост сам си си отговорил - не може да се вземе адреса, ако домейна е различен от текущия!
Тоест от iframe с домейн notrial.info не можеш да вземеш адреса на iframe с домейн google.com
Ако домейните са еднакви, то няма проблем.
 
Re: Вземане на релания URI на външен домейн в iFrame?

Още в първият пост сам си си отговорил - не може да се вземе адреса, ако домейна е различен от текущия!
Тоест от iframe с домейн notrial.info не можеш да вземеш адреса на iframe с домейн google.com
Ако домейните са еднакви, то няма проблем.

Ами не, не съм си отговорил сам, защото го знам на един сайт е направено, колкото и странно (малоумно) да ти звучи. ;D
Тоест не бих питал за нещо, ако не съм го видял направено, въпреки че почти всеки не знае как става ...
 
Последно редактирано:
Re: Вземане на релания URI на външен домейн в iFrame?

От един домейн не може да се взима инфо за друг. Колкото и да ни се иска не е възможно:)
<грешно>Изказваш се неподготвен! Правилото за сигурност е "създателя/собственика може" т.е. от parent можеш да гледаш надолу, а обратното не. Това което иска си работи нормално. Примерите, които съм дал горе работят.</грешно>

Явно ми е стара информацията. Горното е приложимо само за същия домeйн вече.

Иначе може и между домейни ама ако са си твои и е по сложничко http://www.ajaxify.com/run/crossframe/
 
Последно редактирано:
Re: Вземане на релания URI на външен домейн в iFrame?

епа дай го тоя сайт де, някой може да се сети как става :)

Епа ето:

http://www.buynowfromusa.com/57/76/Bijuteriia-Jewelry-impression.htm

Кликни по някой от линковете в заредения ресурс за бижутерия и разгледай как го слагат в голямото текстово поле, ако не е с JavaScript-a, то тогава най-вероятно може и с php-то да го подават, но е интересно де. ;). Хайде, чакам обяснение :p
 
Re: Вземане на релания URI на външен домейн в iFrame?

Изказваш се неподготвен! Правилото за сигурност е "създателя/собственика може" т.е. от parent можеш да гледаш надолу, а обратното не. Това което иска си работи нормално. Примерите, които съм дал горе работят.
Изказвам се много подготвен ;D

Я виж тоя сорс:
http://ibm.lazarov.bg/test/test.html

Направи едно търсене в google и после кликни на бутончето. Какво ти връща? ;) Винаги показва едно и също, тъй като имаш права само над собственото дом дърво, но не и този на самия ифрейм, а в него адреса вече се е сменил. Сега кой е неподготвения?
 
Re: Вземане на релания URI на външен домейн в iFrame?

Епа ето:

http://www.buynowfromusa.com/57/76/Bijuteriia-Jewelry-impression.htm

Кликни по някой от линковете в заредения ресурс за бижутерия и разгледай как го слагат в голямото текстово поле, ако не е с JavaScript-a, то тогава най-вероятно може и с php-то да го подават, но е интересно де. ;). Хайде, чакам обяснение :p

На първо време в случая не се използва iframe, а просто се inlude-ва съдържанието на чуждия сайт.

Тоест:
echo file_get_contents("http://www.buynowfromusa.com");

След това се хващат клик събитията и линковете се редиректват към iframe:
http://www.buynowfromusa.com/dispat...ons.com/14k-white-gold-diamond-bracelets.html

Който прави горното file_get_contents...

Тоест в случая изобщо не става дума за хващане на чужд адрес на ифрейм, което както казах е невъзможно;)
 
Последно редактирано:
Re: Вземане на релания URI на външен домейн в iFrame?

На първо време в случая не се използва iframe, а просто се inlude-ва съдържанието на чуждия сайт.

Тоест:
echo file_get_contents("http://www.buynowfromusa.com");

След това се хващат клик събитията и линковете се редиректват към iframe:
http://www.buynowfromusa.com/dispat...ons.com/14k-white-gold-diamond-bracelets.html

Който прави горното file_get_contents...

Тоест в случая изобщо не става дума за хващане на адреса на ифрейма, което както казах е невъзможно;)

ОК, ще погледна така дали могат да се прихваната събития от iFrame-а :)
 
Re: Вземане на релания URI на външен домейн в iFrame?

Не се карайте и аз скоро тествах и търсих начини да проследиш от страница в която има ифрейм да прихващам урл-тата на ифрейма след като се променят, но както и създателя на темата е намерил инфо забранили са го поради мерки за безопастност изгубих си времето и накрая се отказах, но си мисля, че истината е някъде там :)
това което измислих, но не съм приложил е следното
1.во Да се ползва get_file_contents() за URI, а не ифрейм и като взимаш съдържанието на дадения сайт или страница то парсваш урл-тата и ги заменяш с нещо подобно на редиректите които се правят
domain.com?exit=sajta2.com/promenlivite.php taka
т.е. всички урлта от типа
HTML:
<a href="url1" ></a>
стават
HTML:
<a href="moqtdomain.com/page.php?=url1" ></a>
по този начин ще взимаш съдържанието на всеки линк отворен в "неифрейма ни" и ще имаш постоянно съдържанието както и оригиналния адрес на това което ти е отворено в "неифрейма ни"
2.ро какво ще кажете за първото :)
 

Горе