Sziasztok,
az egyik oldalba egy önálló felületű és megjelenésű search block-ot készülök betenni: ezt: http://tympanus.net/codrops/2013/06/26/expanding-search-bar-deconstructed/
CSS injectorral a stílusok mennek, két pici script feltöltve, amelyek a block-ból html-el meghívva tökéletesen mennek.
Az utolsó lépés az addEventListener és removeEventListener funkciók beüzemelése https://github.com/jonathantneal/EventListener, ami ez a script:
// EventListener | @jon_neal | //github.com/jonathantneal/EventListener !window.addEventListener && window.Element && (function () { function addToPrototype(name, method) { Window.prototype[name] = HTMLDocument.prototype[name] = Element.prototype[name] = method; } var registry = []; addToPrototype("addEventListener", function (type, listener) { var target = this; registry.unshift({ __listener: function (event) { event.currentTarget = target; event.pageX = event.clientX + document.documentElement.scrollLeft; event.pageY = event.clientY + document.documentElement.scrollTop; event.preventDefault = function () { event.returnValue = false }; event.relatedTarget = event.fromElement || null; event.stopPropagation = function () { event.cancelBubble = true }; event.relatedTarget = event.fromElement || null; event.target = event.srcElement || target; listener.call(target, event); }, listener: listener, target: target, type: type }); this.attachEvent("on" + type, registry[0].__listener); }); addToPrototype("removeEventListener", function (type, listener) { for (var index = 0, length = registry.length; index < length; ++index) { if (registry[index].target == this && registry[index].type == type && registry[index].listener == listener) { return this.detachEvent("on" + type, registry.splice(index, 1)[0].__listener); } } }); addToPrototype("dispatchEvent", function (eventObject) { try { return this.fireEvent("on" + eventObject.type, eventObject); } catch (error) { for (var index = 0, length = registry.length; index < length; ++index) { if (registry[index].target == this && registry[index].type == eventObject.type) { registry[index].call(this, eventObject); } } } }); })();
Ha js-ként töltöm a szerverre és blokkból (a másik kettőhöz hasonlón) behivatkozom nem működik, ha settings.php-ból hívom meg, akkor sem ok.
drupal_add_js('utvonal/valami.js');
Ha azonban simán bemásolom a block-ba a scriptet, akkor ok, minden működik, a baj csak, hogy megjelenik a script nyers szövege is a legenerál oldalon, a szépen működő search block mellett.
Hogyan tudnám ezt a scriptet aktiválni, hogy jó legyen?
Köszönöm!
.js meghívása page.tpl.php-ban
Javascriptet a page.tpl.php-ben szoktam meghívni a header részben és működik:
<script type="text/javascript" src="/sites/all/themes/sajat_theme/js/sajat.js"></script>
Az van ilyen esetben, hogy minden oldalon meg lesz hívva a script.
SimonT
vagy a smink .info fájlja
Vagy ugyanez működik a rögtön a smink .info fájljában is:
scripts[] = myscript.js
Butaság, storno...
Ez miért is butaság?
Ez miért is butaság?
Palócz István
https://palocz.hu | https://tanarurkerem.hu
lokális vs. külső
Azért gondoltam, mert eddig csak lokális js-fájloknál láttam/használtam ezt. De ezek szerint az első gondolatom volt a helyes :)
Ezzel a megoldással a
Ezzel a megoldással a következő problémák lehetnek, annak ellenére, hogy szinte mindig működik.
A fentebb említett .info fájlban található scripts tömb a jó megoldás, mert az a fenti problémákat kiküszöböli. Részletesebben itt: Working with JavaScript and jQuery (vagy nálam a jövő héten induló sminkmester tanfolyamon :) )
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Köszönöm! Tökéletesen működik
Köszönöm! Tökéletesen működik a .info :)