Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ładowanie treści strony do tabeli
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Koniuu
Witam,
Nie wiem, czy to się zalicza do JS czy HTML (w JS jestem zielony, a o HTML wiem niewiele); mianowicie chodzi mi o to, by po kliknięciu na link w tabeli otworzyła się strona w taki sposób, żeby ja rozciągnęła (żeby się cała zmieściła), ale tylko w pionie, nie w poziomie. Proszę o pomoc! cool.gif
envp
Przepraszam, nie umiem liczyć, nie wiem jak to sie robi slyszalem o cyfrach i liczbach - pomóżcie. - Tyle można z twojego postu sie dowiedzieć. Konkretnie z czym masz problem i konkrenie o co Ci chodzi ?
Koniuu
Jak mogę szczegółowo mówić o czymś, o czym mam znikome pojęcie?

Jeszcze raz napiszę, o co mi chodzi:
Mam dokument html z tabelą (znacznik <table>, dla tych, którzy nie mogą wiedzieć, o czym mówię) i obok tej tabeli dwa linki do dwóch podstron. I teraz chciałbym, aby po kliknięciu na link numer jeden do tabeli załadowała się podstrona numer jeden, a po kliknięciu na link numer dwa analogicznie załadowała się treść podstrony numer dwa. I teraz sedno problemu, czyli rozciąganie się tabeli do rozmiarów załadowanej podstrony, lecz tylko na wysokość, a nie szerokość. Próbowałem to wykonać za pomocą pływającej ramki, jednak trzeba w jej atrybutach odgórnie zadeklarować wysokość, co mi w tym wypadku nieszczególnie pasuje.

Czy wyraziłem się dostatecznie jasno i klarownie, oraz wyprodukowałem odpowiedniej długości opis mojego problemu, abyś mógł mi teraz pomóc?

// EDIT

Znalazłem coś takiego, ale działa jedynie w IE. Czy da się zrobić coś podobnego dla innych przeglądarek?

// EDIT 2

Oj, przepraszam, jednak działa również pod FF, tylko zamiast atrybutu "id" zrobiłem "name", co IE tolerował, a FF już nie smile.gif. W związku z tym problem rozwiązany (myślę, że temat do usunięcia), a envp dziękuję za znikomą pomoc.

// EDIT 3

Niestety, to znów ja winksmiley.jpg.

Ciągle mam problem ze zwiększaniem długości IFRAME w zależności od długości zawartości. Znalazłem trzy skrypty JS i każdy w pewnym sensie działa, ale nie ma tak, żeby któryś działał we wszystkich przeglądarkach. Podam Wam te trzy skrypty i prosiłbym o pomoc w przerobieniu któregoś z nich tak, aby działał w każdej przeglądarce.

Skrypt 1:
Kod
function resizeIframe(x)
{
  try
  {
   x.scrolling='no';
   x.style.height=x.contentWindow.document.body.offsetHeight+60+'px'
  }
  catch(x){}
}

Niestety działa on Tylko pod Firefoxem.

Skrypt 2 (w onload ramki):
Kod
function()
{
try
{
  top.window.document.getElementById('ramka').style.height= document.body.scrollHeight+15+'px';
}
  catch(e){ }
}

Ten za to działa dobrze jedynie w Internet Explorerze, w FF ramka zostaje w wielkości dostosowanej do największej podstrony (nie zmniejsza się).

Kod
/**
* @author Sławomir Kokłowski {@link http://www.kurshtml.boo.pl}
* @copyright NIE usuwaj tego komentarza! (Do NOT remove this comment!)
*/

// Domyślny identyfikator IFRAME:
var autoiframe_id = 'autoiframe';
// Domyślny dolny margines:
var autoiframe_margin = 50;

var autoiframe_timer = null;
function autoiframe(id, margin)
{
    if (parent != self && document.body && document.body.offsetHeight && document.body.scrollHeight)
    {
        clearTimeout(autoiframe_timer)
        if (typeof id != 'undefined' && id) autoiframe_id = id;
        parent.document.getElementById(autoiframe_id).height = 1;
        autoiframe_timer = setTimeout("parent.document.getElementById(autoiframe_id).height = Math.max(document.body.offsetHeight, document.body.scrollHeight) + " + (typeof margin == 'undefined' || isNaN(parseInt(margin)) ? autoiframe_margin : parseInt(margin)), 1);
    }
}

if (window.addEventListener) window.addEventListener('load', function() { autoiframe(); }, false);
else if (window.attachEvent) window.attachEvent('onload', function() { autoiframe(); });

Ten działa jedynie w Firefoxie.

Czy mógłby mi ktoś pomóc? Już siedzę nad tymi ramkami parę dni i zaczynam dostawać na łeb. A może jest jakiś inny, prostszy sposób?
gekon
Powalcz z tym:
  1. function resizeContent(){
  2. if(!document.all) myHeight = document.getElementById('ramka').contentDocument.body.scrollHeight; //reszta
  3. else myHeight = document.frames('ramka').document.body.scrollHeight; //IE
  4.  
  5. document.getElementById('ramka').style.height = myHeight + 'px';
  6. }
Koniuu
Nosz kurde, ciągle mi nie działa :|. Mógłbyś wejść na www.paranoyaband.yoyo.pl i zobaczyć, jak to wygląda? W dziale "Band" jest dużo tekstu, i to on powinien rozciągnąć ramkę. W IE robi ramkę na całą tabelę, ale jej nie rozciąga, a w FF jest tylko takie małe pole z tym tekstem...

// EDIT
W skrypcie dodałem alerta, żeby sprawdzić, czy jest wywoływany, ale się nie pokazuje, więc już nie wiem, co o tym myśleć sad.gif

// EDIT 2
No cóż. Nie zamknąłem jednego komentarza w skrypcie (specjalnie, on miał "dezaktywować" instrukcje aż do końca pliku), czego przeglądarka nie chciała zaakceptować tongue.gif. Nie zmienia to faktu, że na IE skrypt działa dobrze, a w FF ramka nadal nie wraca do mniejszej wielkości. :/

// EDIT 3
Yeah. Udało mi się jakoś z tym kodem od Ciebie wywalczyć posłuch u przeglądarek winksmiley.jpg.

Teraz następny problem, ale już z zupełnie innej beczki:
Użyłem pluginu ThickBox do JQuery. Wszystko działa właściwie dobrze, ale w takiej ilości kodu się gubię i nie potrafię zrobić koniecznych przeróbek. Chodzi o to, że robię jakby galerię (visit) na podstawie tego pluginu i okienko otwierające się po kliknięciu na zdjęcie otwiera się w ramce, przez co jest zbyt małe. Jak przerobić ten skrypt, by wszystkie instrukcje działały na głównej stronie, a nie na ramce? Oto link do skryptu: http://www.paranoyaband.yoyo.pl/thickbox.js
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.