2011-09-05 13 views
31

Są to moi meta-tags:Zmiana meta-tagi dynamiczne z jQuery

<meta property="og:image" content="assets/css/gfx/skold.png"/> 
<meta property="og:title" content="Den historie hjemmesiden for Norges Golfforbund"/> 
<meta property="og:description" content="Her finner du alle de historie tingene som har skjedd i Norges golfhistorie gjennom tidene" /> 
<meta property="og:url" content="http://###"/> 
<meta property="og:site_name" content="Norges Golfklubb"/> 
<meta property="og:type" content="sport"/> 

A ja staram się zmienić ich dynamiczny z następującego kodu:

$("meta[property=og:title]").attr("content", result.title); 

Ale jestem wciąż otrzymuję Składnia błąd, nierozpoznane wyrażenie: [property = og: title] w Firebug.

Korzystanie z najnowszej wersji jQuery. Czy ktoś wie, co robię źle?

+10

Jeśli jest to dla Facebook zeskrobać, należy pamiętać, że jeśli ich aktualizacji z JavaScript, Facebook nie będą mieli dostępu do zmodyfikowana wartość. – alex

+0

Dobrze. Mają wartości domyślne, ale strona internetowa składa się z kodeków Ajax i JavaScript, więc muszę zmienić informacje w innych, aby udostępnić odpowiednią zawartość na Facebooku. – OptimusCrime

+1

Potrzebujesz wartości domyślnej dla permalinka, nie możesz mieć dynamicznie generowanego tagu OG dla Facebooka, zawsze zwróci wartość domyślną lub pustą, gdy spróbujesz połączyć je w polu komentarza/udostępniania FB. – Relic

Odpowiedz

41

myślę, że należy uciec : obejrzenia documentation

$("meta[property='og\\:title']").attr("content", result.title); 
+4

można umieścić również w pojedynczych cudzysłowach. –

+4

''og: title'' powinien być w pojedynczych cudzysłowach – Relic

+0

@Relic działa tak, w każdym razie zmieniłem na używany cudzysłów –

3

Upewnij się, że cytaty są tak:

$('meta[property="og:description"]').attr('content',"$modified_desc"); 
+0

To byłoby właściwe dla tego, co próbujesz osiągnąć, mimo że efekt końcowy nadal będzie taki sam, więc rozwiązujesz symptomy, a nie problem. – Relic

3

Mogłeś dać każdy element meta identyfikator lub klasy.

$('#metaelement').attr('content', 'my new meta description'); 
6
$("meta[name='og:title']").attr('content', 'my new title'); 

Używanie „property =” nie działa w Chrome

Powiązane problemy