<link> href im <head> per js ändern

raybrackho

Mitglied
Hey,

ich möchte für die Verlinkung mit Facebook dynamisch ein thumbnail angeben. (Produktkonfigurator)
Dafür muss man im <head> Bereich folgendes anlegen:

Code:
<link rel="image_src" href="http://www.domain.com/img.jpg" />

Jetzt wird mein Produktbild dynamisch über ein PHP Script generiert.
Mit folgendem Code wird das auch richtig angezeigt, nur halt immer nur das was ich dort eintrage.
Ist es möglich irgendwie mit "document.getElementById" oder so das href Attribut während der Laufzeit zu ändern?

Code:
<link id="fbimg" rel="image_src" href="http://www.domain.com/phpimg.php" />

Irgendwie so:
Code:
document.getElementById('fbimg').href = ('http://www.domain.com/phpimg.php?mf='+farbeA+'&bf='+farbeB);
 
Habs jetzt noch so probiert, leider ohne Erfolg:

Code:
var headID = document.getElementsByTagName("head")[0];         
var fbimg = document.createElement('link');
fbimg.rel = 'image_src';
fbimg.href = 'http://www.domain.com/index.php?farbeA='+m1+'&FarbeB='+b1;
headID.appendChild(fbimg);
 
Zuletzt bearbeitet:
Javascript:
document.getElementById("fbimg").href = "FOOBAR"

Funktioniert bei mir hervorragend.

Aber ich verstehe nicht, was du damit bezwecken willst. Die Änderungen sieht doch niemand. Und der Facebook-Parser führt sehr wahrscheinlich kein JavaScript aus. Der sucht ja nur nach dem link tag mit "rel=image_src".

Der Link sollte vielmehr serverseitig angepasst werden.
 
So wie es aussieht funktioniert der Code doch. Das erstellte Element ist aber im Quellcode nicht sichtbar, lediglich in Firebug wird es angezeigt.

Problem ist jetzt, dass bei jedem Farbwechsel ein neues Element erzeugt wird. Wie kann ich es anstellen, dass immer nur ein Element vorhanden ist. Das andere also bei der Erzeugung gelöscht wird?
 
Aha, danke.
Aber wie kann ich es jetzt anstellen, dass geprüft wird ob bereits ein Element existiert, dass dann gelöscht wird und dann das neue erzeugt wird?
 
Entschuldige, ich hatte deinen ersten Beitrag garnicht gesehen. Aber wenn du meinst, dass das eh unsinn ist, hast du eine Idee wie ich das ganze "serverseitig" dynamisch ändern kann?
 
Du verwendest doch PHP oder? Also kannst du ja den Link so ausgeben, wie du ihn brauchst.

Ich vermute aber, dass man auf deiner Seite per JavaScript entsprechen die Produkteigenschaften ändern kann und wenn man anschließend den Link bei Facebook postet, soll das Produktbild auch dem geänderten Produkt entsprechen. Aber der Link in der Adressleiste ändert sich ja nicht, also ist es für Facebook immer das gleiche.
Wenn du einen extra Button hast "Auf Facebook posten" o.ä., dann musst du dort den Link entsprechen anpassen und deinem Server als Parameter das mitgeben, was du brauchst.
Oder du verwendest kein JavaScript und lädst bei Produktänderungen die Seite mit anderen Parametern neu.
 
Ja genau so funktioniert das bei mir.
Ein Seitenreload soll aber nicht stattfinden. Und die URL für Facebook wird generiert, je nachdem welche Farbkombination ausgewählt wurde. Also am Ende:
Code:
index.php?farbeA=0&farbeB=2

Jetzt muss es doch irgendwie möglich sein, dass sich das <link> Element je nach URL mit diesen Parametern bestücken lässt?!

Hier ist zB eine Seite bei der das funktioniert.
Code:
http://www.munichmyway.com/product_info.php?products_id=690
 

Neue Beiträge

Zurück