legrooch [ MPO Squad Member ]
Banalny problem z Javascriptem
Witam,
trafiłem na problem z użyciem Javascriptu. Pewnie dla kogoś będzie to po raz kolejny banał :)
Mianowicie w head mam zadeklarowane
<script src="includes/test.js" type="text/javascript"></script>
test.js zawiera prostą funkcję, która odnosi się do diva na stronie zwracając jej informację.
Próbuję wywołać w tą funkcję (nazwa to NumbersAndValues) poprzez
]<body onload="javascript:NumbersAndValues(first, second)">
I nic się nie dzieje... :)
Gdzie źle się odwołuję do osobnego skryptu?
Edit
Problem rozwiązany - kompatybilność przeglądarek wykładała skrypt pod Operą.
legrooch [ MPO Squad Member ]
Kolejny problem...
Jak wskazać w zewnętrznym javascripcie obiekt na stronie, do którego ma być wykonany zwrot informacji? (obiekt do diva)
-imperator- [ ! ]
eee... zwrot informacji? tzn. chcesz zmienić zawartość tego diva wywolujac funkcje? no to najpierw var obiekcik = document.getElementById('id_diva'); a potem obiekcik.innerHtml = "nowa zawartosc";
Scatterhead [ łapaj dzień ]
wywal przedrostek "javascript:", stosuje sie go przewaznie tylko w anchorach, dolaczam sie do pytania co oznacza zwrot informacji
legrooch [ MPO Squad Member ]
Ok.
1) main.html przy ładowaniu ma jako onload funkcję Position(xxx,yyy).
2) Funkcja Position znajduje się w zewnętrznym js. Zawiera ona utworzenie mapy MapsGoogle.
3) Funkcja ta wymaga podania obiektu docelowego, w którym ma się mapa znaleźć - czyli tu diva o ID="map".
4) Nie wiem jak z poziomu jsa wskazać w kodzie tego diva
5) Parametry są przekazywane do skryptu prawidłowo. Dostaję natomiast "Error: Object expected". Po wyremowaniu tworzenia mapy wszystko jest ok. Alert zwraca mi oba parametry prawidłowo.
Kod js:
function position(lon, lat) ‹
if (GBrowserIsCompatible()) ‹
// alert(lon + ' ' + lat);
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(lon, lat), 16);
›
›
legrooch [ MPO Squad Member ]
Up? :)
maviozo [ Man with a movie camera ]
Wklej zewnętrzny skrypt tzn. <script src="..."> na koniec dokumentu?
Ale nie, chodzi żeby <script language=javascript src="..."></script> był po prostu na końcu pliku main.html
Albo wyrzuć onload z body i na koniec pliku main.html wpisz:
<script language="Javascript">
Position(xxx,yyy)
</script>
legrooch [ MPO Squad Member ]
Dostałem warunek - ma być na zewnątrz właśnie....
Zresztą to ciąg dalszy tamtej sraki....
Scatterhead [ łapaj dzień ]
kurde na oko wygląda w porządku, jeżeli rzeczywiście skrypt ładuje się po zbudowaniu drzewa DOM, to powinien załapać element o tym ID, jeżeli jest dobrze wpisany, pokaż nam ten tag z id "map"
legrooch [ MPO Squad Member ]
Scatterhead ==><div id="map"></div>
Kolejna prośba - potrzebuję ładny javascript do powiększenia zdjęcia "onmouseover". Możecie coś polecić?
Dobra, dzięi wszystkim za pomoc. Okazało się, że może skrypt zostać w stronie....
slowik [ NightInGale ]
overlib ?
ewentualnie :hover ale za to ie tego nie obsluguje ;)
Scatterhead [ łapaj dzień ]
ogólnie do wszystkich takich operacji proponuje użycie biblioteki jquery, jest to najprostsza i najbardziej przyjazna biblioteka do javascripta.
efekt powiększenia po najechaniu można w jquery napisać w paru linijkach, coś w rodzaju:
$("#obrazek1").hover( // zamiast konkretnego obrazka mozna wybrac wszystkie, ktore sa np. w jakims divie, mozliwosci jest bardzo duzo
function()‹
//hover on
$("#obrazekzpowiekszeniem").attr("src") = $(this).attr("src");
$("#divzpowiekszeniem").show();
›,
function()‹
// hover off
$("#divzpowiekszeniem").hide();
›
);
+ pozycjonowanie diva wzgledem myszki, ale to tez banal
wiecej:
ogolnie proponuje ogarniecie jQuery, chwilke to zajmie, ale pozniej efekty sa zdecydowanie bardzo zadowalajace
legrooch [ MPO Squad Member ]
slowik ==> Mój prez jest popierdolony.... Dałem mu, to dla niego za długie w kodzie, a on musi to i tak zrozumieć....
Co znasz z krótszych skryptów onmouseover (koniecznie!) powiększających dany obrazek?
slowik [ NightInGale ]
a:link,a:visited,a:active‹
bisplay:block;
background-image:url('plik_maly.jpg');
width:100px;
height:100px;
text-decoration:none;
›
a:hover‹
background-image:url('plik_duzy.jpg');
width:200px;
heigt:200px;
›
zawsze mozna kombinowac z position jeszcze ....
od biedy tak banalnie
<div style='position:relative'>
<img src='plik_maly.jpg' onmouseover="this.src='plik_duzy.jpg'" onmouseout="this.src='plik_maly.jpg'" style='position:absolute;'>
</div>