Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Manipulacja zawartością tagu Head, getElementsByTagName
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Witam,

[JAVASCRIPT] pobierz, plaintext
  1. function Autoload() {}
  2. Autoload.aFiles = new Array('options', 'background')
  3. Autoload.init = function()
  4. {
  5. $Head = document.getElementsByTagName("head");
  6. for($index in Autoload.files)
  7. {
  8. $sScript = '<script type="text/javascript" src="/script/'+Autoload.aFiles[$index]+'.js"></script>';
  9. $Head[0].innerHTML = $Head[0].innerHTML + $sScript;
  10. }
  11. alert($Head[0].innerHTML)
  12. }
  13. window.onload = Autoload.init();
[JAVASCRIPT] pobierz, plaintext
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <script type="text/javascript" src="/script/autoload/background.js"></script>
  5. </head>
  6. <body>
  7. </body>
  8. </html>
Powyższy skrypt ma na celu ładowanie bibliotek JavaScript. Niestety nie robi tego. Skrypt działa jeśli użyję jQuery. Jednym w tym projekcie nie chcę używać jQuery.

Ten post edytował orglee 5.12.2009, 18:07:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
starach
post
Post #2





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Właśnie napisałem coś podobnego.

[JAVASCRIPT] pobierz, plaintext
  1. function Autoload() {}
  2. Autoload.aFiles = new Array('options', 'background')
  3. Autoload.init = function()
  4. {
  5. $Head = document.getElementsByTagName("head")[0];
  6. for($index in Autoload.aFiles)
  7. {
  8. $Src = document.createAttribute("src");
  9. $Src.nodeValue = "text/javascript"
  10. $Type = document.createAttribute("type");
  11. $Type.nodeValue = "/script/"+Autoload.aFiles[$index]+".js"
  12. $Script = document.createElement('script');
  13. $Script.setAttributeNode($Src);
  14. $Script.setAttributeNode($Type);
  15. $Head.appendChild($Script);
  16. }
  17. alert($Head.innerHTML)
  18. Background.init();
  19. }
  20. window.onload = Autoload.init();
[JAVASCRIPT] pobierz, plaintext


I teraz innerHTML jest poprawny, ale! Niestety dalej wyświetla komunikat: Uncaught ReferenceError: Background is not defined

edit>
OMG ! Chyba sobie kawki zaparzę bo takie debilne błędy popełniam że aż mnie to smuci...

edit>>
[JAVASCRIPT] pobierz, plaintext
  1. function Autoload() {}
  2. Autoload.aFiles = new Array('options', 'background')
  3. Autoload.init = function()
  4. {
  5. $Head = document.getElementsByTagName("head")[0];
  6. for($index in Autoload.aFiles)
  7. {
  8. $Src = document.createAttribute("src");
  9. $Src.nodeValue = "script/"+Autoload.aFiles[$index]+".js";
  10. $Type = document.createAttribute("type");
  11. $Type.nodeValue = "text/javascript";
  12.  
  13. $Script = document.createElement('script');
  14. $Script.setAttributeNode($Src);
  15. $Script.setAttributeNode($Type);
  16.  
  17. $Head.appendChild($Script);
  18. }
  19. Background.init();
  20. }
  21. window.onload = Autoload.init();
[JAVASCRIPT] pobierz, plaintext
Poprawiłem. Wszystko jest tam gdzie trzeba. A on dalej nie mi wrzeszczy że nie ma klasy.
[JAVASCRIPT] pobierz, plaintext
  1. function Autoload() {}
  2. Autoload.aFiles = new Array('options', 'background')
  3. Autoload.include = function($sFile)
  4. {
  5. if (document.createElement && document.getElementsByTagName)
  6. {
  7. var head = document.getElementsByTagName('head')[0];
  8. var script = document.createElement('script');
  9. script.setAttribute('type', 'text/javascript');
  10. script.setAttribute('src', $sFile);
  11. head.appendChild(script);
  12. } else {
  13. alert('Twoja przeglądarka to stara dupa nie potrafi obsługiwać DOM. Zmień ją!');
  14. }
  15. }
  16. Autoload.init = function()
  17. {
  18. for($index in Autoload.aFiles)
  19. {
  20. Autoload.include("script/"+Autoload.aFiles[$index]+".js");
  21. }
  22. Background.init();
  23. }
[JAVASCRIPT] pobierz, plaintext
Tak też nie działa. Mimo że w inspektorze kodu widzę że dodał obie linijki.


Ten post edytował orglee 5.12.2009, 19:11:38
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: 12.10.2025 - 00:12