![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 1 Dołączył: 8.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam taką klasę (korzystam z prototype):
Addons = Class.create(); Addons.prototype = { initialize: function(){}, require: function(libraryName) { try { var script_tag = new Element('script',{ type: 'text/javascript', src: libraryName }); $$("head")[0].appendChild(script_tag); } catch(e){ // inserting via DOM fails in Safari 2.0, so brute force approach document.write('<script type="text/javascript" src="' + libraryName + '"></script>'); } } } I używam jej w sposób następujący: Engage = new Addons(); var include = $w('global/functions main_menu/functions components'); var path = '../../scripts/'; include.each(function(file){ Engage.require(path + file + '.js'); }); w global/functions.js znowu dynamicznie dołączam kilka plików, tworząc swoistą rekurencję, wszystkie przeglądarki sobie z tym radzą (tak, nawet IE6) z wyjątkiem Opery i to w wersji bodajże ostatniej (9.26). Problem jest takiej natury, że tablice include i path są nadpisywane w każdym nowym rekurencyjnym wywołaniu, dlatego dołącza tylko kilka plików, bo reszte zamazuje. Dziwne zachowanie Opery. Miał ktoś podobny problem? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 21:39 |