2015-11-29 2 views
0

Я пытаюсь загрузить функцию JavaScript при загрузке статьи внутри Joomla. В нормальном HTML-кодировании, которое было бы в теле с использованием события onload, я мог бы загружать все, что захочу, включая функции JS. т.е.Загрузка функции JavaScript onload Событие в Joomla

<body onload="myJSFunction()"> 

Я использую Sorcerer, чтобы иметь возможность записать JS внутри Joomla AS IS - Но я не мог быть в состоянии загрузить функцию, когда изделие нагрузки.

Я был бы рад узнать, как правильно загружать функции JS в статьях Joomla. Мне удалось активировать JS, используя событие OnClick - это означает, что JS-код работает внутри Joomla.

Хотелось бы, чтобы событие активировалось при загрузке статьи. Есть ли способ сделать это? Есть ли код PHP, который может мне помочь? Я пробовал использовать этот код без везения - когда мой идентификатор статьи - 133. Этот код должен был изменить тело Joomla для использования события onload, когда он соответствует идентификатору статьи 133. Но, он вообще не работал в Joomla и Я не получил событие onload, которое я хотел.

> <?php if ($_GET['id'] == 133) { 
>  $body = '<body onload="MyJSFunction()">'; 
>  } else { 
>    $body = '<body>'; 
>  } ?> 

Пожалуйста, помогите мне с этим. Спасибо в Advanced

ответ

1

Если вы можете поместить javascript в документ, вы можете добавить строку, которая привязывает функцию к событию onload, используя document.body.addEventListener.

Что-то вроде

document.body.addEventListener("onload", function(){ MyJSFunction(); }); 

Ваша функция может жить внутри самой анонимной функции.

Изменение этого после нашего обсуждения (и исправление опечатки):

<script type="text/javascript"> 
document.body.addEventListener("onload", function(){ 
    var firstDivContent = document.getElementById('MyDiv'); 
    var secondDivContent = document.getElementById('MyDiv2'); 
    secondDivContent.innerHTML = firstDivContent.innerHTML; 
}); 
</script> 

или если нет никаких других слушателей событий вокруг, вы можете попробовать:

<body onload="var firstDivContent = document.getElementById('MyDiv'); 
    var secondDivContent = document.getElementById('MyDiv2'); 
    secondDivContent.innerHTML = firstDivContent.innerHTML;"> 
+0

Благодаря Matiu. Я попробовал добавить свой код внутри текущего кода Joomla, который у меня есть, также: ' <тип скрипта = "текст/JavaScript"> функция йоЗотеЬЫпд() { ...... } 'но это не работает - Функция JsFunction работала просто отлично, используя событие OnClick. Но я не мог заставить его работать в режиме onload. Любая идея почему? спасибо –

+0

, если вы поместите свою функцию внутри addEventListener, тогда вы можете быть уверены, что она существует при вызове. Иногда javascript все смешивается с тем, что присутствует, а не при загрузке, поэтому вы можете обнаружить, что получаете какую-то ошибку «нет такой функции». Функция, которую вы вызываете, должна существовать, когда слушатель событий добавляется в тело. –

+0

Спасибо. Я не совсем понимаю, что мне нужно делать? Я переключил места и все еще работал только на событии onClick и без Onload. и когда я сделал это ' 'Это ** НЕ работает ** вообще.Пожалуйста, помогите мне понять, что я делаю неправильно. Спасибо –

Смежные вопросы