Naviblock in Einkaufswelt (Startseite)

Servus zusammen, ich hoffe ich bin hier richtig… war mir unssicher ob ich hier die Frage stellen soll oder unter Desgin. Folgendes Problem, ich brauche die function vom Javascript “insertAdjacentHTML”… ich habe einen dummy gebaut mit einer einfachen HTMl datei und den JS. Funktioniert, auf Firefox als auch Chrome. var div = document.getElementById('homenavloader'); div.insertAdjacentHTML('beforeBegin','Hier kommt mein Code'); Auch das einbinden in die index.tpl funktioniert. Also das Script wird geladen… Problem es funktioniert dann nicht mehr. Bei Chrome bekomme ich einen Fehler angezeigt und zwar: Uncaught TypeError: Cannot read property 'insertAdjacentHTML' of null Und leider brauche ich diese funktion… weil ich an der stelle wo der “text” kommt eine Navigation bauen muss. Der Code soll nämich innerhalb der Einkaufswelt geladen werden. Der HTML Editor der Einkaufswelt ist leider “scheiße” und lässt mich dor keine vernünftige Navigation bauen… darum versuche ich nun durch das Template meinen HTML/TPL-Navigation reinzuladen. (Die Navigation soll wie die anderen über “Shopseiten” gefüllt werden) Schlussendlich die Frage… weiß einer Warum diese function nicht in Shopware läuft. Und falls nicht ob einer eine Idee für eine Alternative hat. (Navigation + Suche innerhalb der Einkaufswelt ) Danke für eure Mühe im vorraus ^.~ EDIT: Alter Name des Thread: “JS: insertAdjacentHTML” LÖSUNG: Ist mehr ein Work Arround als eine Lösung zu meinem eigendlichen Problem. Ich lasse nun einfach im template eine neue tpl laden die diese Navigation beinhaltet. Diese ist mit dem “Shopseiten” generiert. Anschliesend lasse ich nun immer die Seite checken ob es ein Div ennthällt mit der Klasse der Sidebar Navigation die auf den Statischen Seiten oder im Listing vorkommt. Dann wird die TPL bzw der eingefügte code einfach ausgeblendet.

gib mal das in die Console bei Chrome ein: document.getElementById('homenavloader'); Ergebnis wahrscheinlich „null“ :wink:

 
[/code]

Dann solltest du vll schauen zu welchem Zeitpunkt deine Abfrage kommt. Ggf ein Timeout setzen bis die Einkaufswelt fertig geladen ist.

1 „Gefällt mir“

[quote=„brettvormkopp“]Dann solltest du vll schauen zu welchem Zeitpunkt deine Abfrage kommt. Ggf ein Timeout setzen bis die Einkaufswelt fertig geladen ist.[/quote] Ok hab nun ein Timout drauf gesetzt und nun funktionierts in beiden Browsern. Der text wird angezeigt. Nun Hoff ich nur noch dass wenn ich da eine Navigation einbaue diese auch richtig dargestellt wird. Aber dann melde ich mich hier nochmal. Vielen Dank ^^ EDIT: Ja wie erwartet gibts ein Problem. Der Text wird zwar geladen aber sobald ich ein Navi block Laden möchte gehts nicht. [code]setTimeout(myFunction, 7000) function myFunction() { var div = document.getElementById(‚homenavloader‘); div.insertAdjacentHTML(‚beforeBegin‘,’ {* Service / Support drop down *} {block name=„frontend_index_checkout_actions_service_menu“}

{s namespace=‚frontend/index/checkout_actions‘ name=‚IndexLinkService‘}{/s} {* Include of the widget *} {block name=„frontend_index_checkout_actions_service_menu_include“} {action module=widgets controller=index action=menu group=gLeft} {/block}
{/block} '); } [/code] HIer habe ich versucht die Top-Navi Testweise einzubauen… aber naja Sie läd nicht… also würde wohl meine Navigation dann später auch nicht laden wenn ich richtig liege. Jemand einen Rat ? =

Nicht in jedem Template stehen alle Variablen zur Verfügung, vll liegts daran.

Naja ich habe das Standart Emotion Theme genommen und nun es bislang auf meine Bedürfnisse abgeändert. Die Naviation in der Einkaufswelt (die Home Seite also eigendlich ohne Produkte etc.) ist das letze das mir noch fehlt um das Template abzuschliesen.