Šta je novo?

SSI Dynamic iFrame Java Script

nidzoni

Čuven
Učlanjen(a)
24.12.2002
Poruke
275
Poena
619
Skript automatski treba da vrsi dinamicki resize iFrame-a ucitanog u glavnu stranicu. Medjutim, on to radi samo za visinu tj. height ali ne i za sirinu (width), tako da fotka (u mom slucaju) kja je u iFrame-u bude odsecena ili ima visak.
Skript je sa Dynamic Drive-a (http://www.dynamicdrive.com/dynamicindex17/iframessi2.htm) i na njihovoj strani radi bas kako treba...

Evo skripta:



<script type="text/javascript">

/***********************************************
* IFrame SSI script II- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["myframe"]

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids)
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}

if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller

</script>





<iframe id="myframe" src="externalpage.htm" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; width:100%; display:none"></iframe>

Ako neko ima ideju kako ovo da resim...
 
Moj savet idi reverse full.

Znaci sacuvaj njihovu stranicu isto kao sto se nalazi na serveru (povadis sav flash, js, css, ...) i onda pokrenes kod sebe. Ako je istovetno, znaci da si tacno preneo. Zatim probaj da modifikujes TU stranicu koju si skinuo koja je proradila za tvoje potrebe, tj. da nateras da ti radi to sto ti hoces.

Ako proradi, onda otkacinji jedan po jedan CSS ili JS i prostom eliminacijom docices do resenja.

Nemam vremena na netu vise. 🙁
 
probacu..prvo sto sam uradio bilo je obrnuto - izvadio sam samo skript sa njihove strane ali on je identican kao sto je prikazan.
probacu tvoj predlog, to mi nije palo na pamet, pa cu da javim sta se desilo
 
Mozda gresim, ali mi se cini da ovaj iFrame u njihovom primeru uopste ne menja sirinu. Nego, zasto to raditi preko iFrame-a kad moze preko obicnog div-a?
Pretpostavljam da te zeza FF zbog scrollbar-ova i onog overflow-a posto kod njega moras da dodas par pixela "margine" da ti ne bi odsekao stranicu, pa pokusaj sa ~20px dole i desno 😉
 
Ne gresis ni u jednom slucaju.. Ne moze da menja sirinu, to sam shvatio kad sam posebno ucitao stranice koje Dynamic iFrame na sajtu poziva u glavnu stranu, ukljucujuci i nju, po ideji sirNemanjapro.
Vidim i ja da ce div da bude pravo resenje.
Hvala na predlozima !
 
Problem sam uz male modifikacije resio sa AJAX scriptom koji ucitava thumbnail u punoj velicini u div-u na istoj strani. Ustvari, thumbnailovi se nalaze u iFramae-u i trebali bi da se prikazu u parent strani i tu ne znam kako da napravim vezu izmedju njih.



Skript ide ovako:

parent strana:

<script src="galerija_files/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript">
function loadContent(id) {
$("#contentArea").load("galerija_files/rpc.php?o="+id+"");
}
</script>



U iFrame-u kod koji poziva sliku u punoj velicini je:

a href=\"javascript:loadContent($id)\"


Kada je na istoj strani sve sljaka super..Ubacio sam iFrame za thumnail jer hocu da izbegnem refresh cele strane prilikom listanja.
 
Ti ga bas zakomplikovao. Pretpostavljam da pravis neku vrstu galerije slika i hoces da kad se klikne na thumbnail da se u nekom delu dinamicki generise full slika?
Zasto jednostavno ne napravis div kojem ces da menjas html sadrzaj na onclick gde ako je spisak slika ograniceno velik jednostavno napravis niz sa linkovima svih slika ili ako je predugacak hvatas po nekoliko prethodnih i narednih linkova preko Ajax-a?
Ne razumem sto si se uhvatio za iFrame. To isto mozes da postignes sa document.getElementById("div_id").innerHTML="sta god"
ili menjaj src slike...
E sad, da ti ne bi cela strana skakala pri promeni slike, pod pretpostavkom da su sve slike konacno velike napravi div dovoljno veliki da moze i najveca slika da stane u njega ili jednostavno radi nalepljeni centrirani div preko cele strane koji po potrebi menja velicinu.
 
Poslednja izmena:
Ma sve super sljaka, sve sto je vezano za slicice sam odradio u php-u sa paginacijom prikaza broja slicica itd. U punoj velicini se na klik generisu u div-u gde zelim i to je sve ok.
Jedino sto zelim da izvedem, jeste veza izmedju iFrame-a (sa slicicama) i glavne, parent, strane u kojoj ce se generisati ista u punoj velicini.
Pretpostavljam da je fora negde u:

function loadContent(id) {
$("#contentArea").load("galerija_files/rpc.php?o="+id+"");
}

Ovo sljaka kad je sve na istoj strani.

contentArea je id div-a na glavnoj strani. Znaci ne znam da postavim putanju od slicice u iFrame-u do div-a na glavnoj strani. Samo to :trust:
 
Moraces da menjas JQuery i da mu dodas ono parent ispred document.getElementById u okviru HANDLE: $("#id"), ali ako istu funkciju koristis jos negde, onda mu bolje promeni da mu tu explicitno zadajes celu putanju do objekta 😉
 
Poslednja izmena:
Nazad
Vrh Dno