Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Załączanie prototype poprzez js
Victor152
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 26.02.2008

Ostrzeżenie: (0%)
-----


Witajcie!

Załączam bibliotekę prototype w javascripcie w ten sposób:
[JAVASCRIPT] pobierz, plaintext
  1. var underUrl = 'http://victor.org.pl/vibox/';
  2.  
  3. function LoadScript(file)
  4. {
  5. var script = document.createElement('script');
  6. script.src = file;
  7. script.type = 'text/javascript';
  8.  
  9. document.getElementsByTagName('head').item(0).appendChild(script);
  10. }
  11.  
  12. onload = function()
  13. {
  14. LoadScript(underUrl + "js/prototype.js");
  15. }
[JAVASCRIPT] pobierz, plaintext


Jak widać biblioteka niby się ładuje:
http://victor.org.pl/vibox/ (spójrzcie FireBugiem w <head>), lecz jednak konsola błędów wywala:
Cytat
Błąd: Insertion is not defined
Plik źródłowy: http://victor.org.pl/vibox/execute.js
Wiersz: 15


Gdy załącze w htmlu z ręki wszystko działa.
Macie jakiś pomysł? Może onload jest za wcześnie lub za późno do załadowania prototype?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Victor152
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 26.02.2008

Ostrzeżenie: (0%)
-----


Mam tak:
[JAVASCRIPT] pobierz, plaintext
  1. var underUrl = 'http://victor.org.pl/vibox/';
  2.  
  3. function LoadScript(file, metoda)
  4. {
  5. var script = document.createElement('script');
  6. script.src = file;
  7. script.onload = metoda;
  8. script.type = 'text/javascript';
  9.  
  10. document.getElementsByTagName('head').item(0).appendChild(script);
  11. }
  12.  
  13. LoadScript(underUrl + "js/prototype.js");
  14.  
  15. window.onload = function() {
  16. LoadScript(underUrl + "js/prototype.js", 'start');
  17. }
  18.  
  19. function start()
  20. {
  21. new Insertion.After('viBox_js', new Element('div', {id: 'viBox'}));
  22. }
[JAVASCRIPT] pobierz, plaintext


A on tylko jedno - nie ma funkcji Insertion...
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


przede wszystkim pierwsze i najważniejsze zastrzeżenie to źle przekazujesz funkcję start jako parametr - a właściwie jej nie przekazujesz tylko przekazujesz tekst...

po drugie tego błędu nie powinno być z tego powodu o którym wspomniałem wcześniej a powinien być inny (sprawdzałem w konsoli w operze) - czyli suma sumarum celu i tak nie osiągnąłbyś ale przynajmniej szukałbyś poprawnych błędów - jednak wspomniane błędy dalej występują przedewszystkim przez Twoją niekonsekwencję...:
Cytat
LoadScript(underUrl + "js/prototype.js");

window.onload = function() {
LoadScript(underUrl + "js/prototype.js", 'start');
}

to w końcu chcesz wywołać tą funkcję po wczytaniu dokumentu czy wogóle wczas?? - to po co wtedy window.onload?(IMG:style_emoticons/default/questionmark.gif)

skoro już szukałem dokładnie błędów to już dam Ci gotowca gdyż pewnie i tak się nie dostosujesz do powyższych wskazówek (już ok jakby to nie działało i jakby chodziło o tekst a nie funkcję ale mogłeś resztę dokładniej zrobić jak wyżej pisałem w poprzednim poście)...
to działa jak zmieniłem źródła w operze...:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html lang="pl">
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <link href="style.css" rel="stylesheet" type="text/css" />
  5. <title>Tytuł strony</title>
  6. </head>
  7. <h1>Nagłówek pierwszego poziomu ZMODYFIKOWANE ŹRÓDŁO W OPERZE</h1>
  8. <p>
  9. Akapit (z ang. paragraph)<br />
  10. i jeszcze trochę tekstu w następnym wierszu<br />
  11. <a href="http://pl.wikipedia.org">
  12. a to link do Wikipedii</a>.
  13. </p>
  14. <h1>A tutaj będą boxy:</h1>
  15. <p>
  16. <script type="text/javascript">
  17. var viBox_client_id = 1;
  18. </script>
  19. <script id="viBox_js" type="text/javascript">
  20. var underUrl = 'http://victor.org.pl/vibox/';
  21.  
  22. function LoadScript(file, metoda)
  23. {
  24. var script = document.createElement('script');
  25. script.onload = metoda;
  26. script.type = 'text/javascript';
  27. script.src = file;
  28. document.getElementsByTagName('head').item(0).appendChild(script);
  29. }
  30.  
  31.  
  32. window.onload = function() {
  33. LoadScript(underUrl + "js/prototype.js", start);
  34. }
  35.  
  36. function start()
  37. {
  38. new Insertion.After('viBox_js', new Element('div', {id: 'viBox'}));
  39. $('viBox').update('<div id="title"></div><div id="advers"></div><div id="info"></div>');
  40.  
  41. new Ajax.Request("advers.php",
  42. {
  43. method: 'get',
  44. parameters: {'client_id' : viBox_client_id},
  45. requestHeaders: {Accept: 'application/x-json'},
  46. onSuccess: function(transport, json) {
  47. var data = transport.responseText.evalJSON();
  48.  
  49. $('title').update('Reklama na ' + data.client_nurl + ':');
  50. $('info').update('<a href="' + underUrl + 'buyadver.php?client_id=' + data.client_id + '">' + data.client_buyadver + '</a><span class="powered"><a href="http://vibox.victor.org.pl/">viBox powered!</a></span>');
  51.  
  52.  
  53. data.advers.each( function(adver) {
  54. new Insertion.Bottom('advers', new Element('div', {id: 'viAdver_' + adver.who}));
  55.  
  56. $('viAdver_' + adver.who).update('<a href="' + adver.url + '" class="adver"><img src="' + adver.image + '" alt="' + adver.title + '" /></a>');
  57. });
  58.  
  59.  
  60. }
  61. }
  62. );
  63. }
  64.  
  65.  
  66. </p>
  67. </body></html>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 23:31