2012-05-08 3 views
1

У меня есть более двухсот веб-страниц, которым нужен лайтбокс, добавленный к ним. Я добавил файл javascript в нижней части <body> для этих страниц. К сожалению, я забыл добавить JQuery в <head> ... Я ненавидя себя за это :(.Javascript order of operations issue

В основном, я создаю и прилагая <script> и <link> тегов к <head> моему HTML из моего файла JavaScript в нижней части моего <body>

Я считаю, что так как я загружаю тег сценария с конца моего HTML, что это приказ проблемы операций.

Когда я нажимаю на указанном теге, определяемой Shadowbox плагин, ничего не происходит.

Я немного застрял на этом, если кто-то мог помочь. Я бы очень признателен!

Вот пример кода, который я использую:

//Get head element 
var head = document.getElementsByTagName("head")[0]; 

//Create and attach JQuery 
var jquery = document.createElement('script'); 

jquery.type = 'text/javascript'; 
jquery.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'; 
jquery.onload = function() { 
}; 
head.insertBefore(jquery,head.childNodes[4]); 

//Create and attach shadowbox CSS 
var shadowboxCSS = document.createElement('link'); 
shadowboxCSS.type = 'text/css'; 
shadowboxCSS.rel = 'stylesheet'; 
shadowboxCSS.href = 'http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/shadowboxCSS.css'; 
head.appendChild(shadowboxCSS); 

//Create and attach shadowbox JS 
var shadowbox = document.createElement('script'); 

shadowbox.type = 'text/javascript'; 
shadowbox.src = 'http://image.iloqal.com/lib/fe5c1570746107757c1c/m/1/shadowboxJS.js'; 
head.appendChild(shadowbox); 

//Call shadowbox function in head 
var shadowboxcall = document.createElement('script'); 
shadowboxcall.type = 'text/javascript'; 
shadowboxcall.innerHTML = "Shadowbox.init()"; 
head.appendChild(shadowboxcall); 
+2

так ... Какова фактическая ошибка? – Matt

+0

Вы пытались переместить свой код, связанный с теневым ящиком, в 'jquery.onload'? –

+0

Не совсем ясно, из вашего вопроса, в чем проблема. Код не работает? Ошибка? Пожалуйста, опишите поведение, которое вы хотите, но не получаете. –

ответ

2

Удалить раздел «Вызов Shadowbox функции», это не так.

Вместо этого добавьте shadowbox.onload = function() {Shadowbox.init();}; в конец.

+0

WOOOOOOT! Это сделало это ... Спасибо за вашу помощь! Я искал лучший способ назвать эту функцию, и это имеет смысл. – Dandy