fromsoft_pl
16-11-2009, 20:26
Przetestowałem problem w J! 1.5.12 i 1.5.15 na Ff3.5 i IE 8. W obydwu wypadkach doprowadziły mnie do jednakowego wniosku. Otóż Mootools nie działa jeżeli skrypt został zadeklarowany zalecaną metodą w HEAD (kod tylko poglądowy!), czyli mniej więcej tak:
<?php
JHTML::_( 'behavior.mootools' );
$ajax = "/* <![CDATA[ */
var Tips3 = new Tips($$('.Tips3'), {
showDelay: 400,
hideDelay: 400,
fixed: true
});
/* ]]> */
";
$doc = & JFactory::getDocument();
$doc->addScriptDeclaration( $ajax );
bądź importując z zewnątrz za pomocą
$doc->addScript([sciezka_do_pliku_js]);
Natomiast zadziała poprawnie jeżeli zrobię coś w rodzaju:
<?php JHTML::_( 'behavior.mootools' ); ?>
<a href="index.php" class=".Tips3" title="tooltip mootools">Strona główna</a>
<?php echo "<script type='text/javascript'>$ajax</script>";?>
Kod jest tylko poglądowy, chodzi mi o podejście. Jeżeli zadeklaruję skrypty dla mootools w HEAD to mi nie działa (metody mootools są ignorowane/błędnie interpretowane przez browser), natomiast jeżeli dam ten sam skrypt wewnątrz html'u to wtedy działa prawidłowo.
Nie dotyczy to 'zwykłego' javascriptu, bo tam zachowanie jest zgodne z oczekiwaniami.
Spędziłem sporo czasu na próbach rozwiązania problemu, ale nie mam pojęcia dlaczego tak się dzieje. Czy komuś udało się rozwiązać podobny problem?
<?php
JHTML::_( 'behavior.mootools' );
$ajax = "/* <![CDATA[ */
var Tips3 = new Tips($$('.Tips3'), {
showDelay: 400,
hideDelay: 400,
fixed: true
});
/* ]]> */
";
$doc = & JFactory::getDocument();
$doc->addScriptDeclaration( $ajax );
bądź importując z zewnątrz za pomocą
$doc->addScript([sciezka_do_pliku_js]);
Natomiast zadziała poprawnie jeżeli zrobię coś w rodzaju:
<?php JHTML::_( 'behavior.mootools' ); ?>
<a href="index.php" class=".Tips3" title="tooltip mootools">Strona główna</a>
<?php echo "<script type='text/javascript'>$ajax</script>";?>
Kod jest tylko poglądowy, chodzi mi o podejście. Jeżeli zadeklaruję skrypty dla mootools w HEAD to mi nie działa (metody mootools są ignorowane/błędnie interpretowane przez browser), natomiast jeżeli dam ten sam skrypt wewnątrz html'u to wtedy działa prawidłowo.
Nie dotyczy to 'zwykłego' javascriptu, bo tam zachowanie jest zgodne z oczekiwaniami.
Spędziłem sporo czasu na próbach rozwiązania problemu, ale nie mam pojęcia dlaczego tak się dzieje. Czy komuś udało się rozwiązać podobny problem?