Gå til innhold

Kommentar fra innholdsansvarlig for Diskusjon.no: 4 tiltak for en mer ryddigere digital valgkamp

Foto

Hvordan plukke opp verdiene i authors og tags med Javascript?


2 svar i denne tråden

#1 Heizann

Heizann

    Bruker

  • Medlemmer
  • 4 innlegg
  •   6. november 2010

Skrevet 3. mai 2019 - 19:34

Hei!

Jeg er ingen programmerer, men har fått et case jeg gjerne vil ha hjelp med:


"To eksempler på viktige datapunkter er forfatter av en artikkel og innholdstagger. Disse blir tilgjengeliggjort i et datalayer objekt i kildekoden kalt dn.datalayer.

Eksempel artikkel: https://www.dn.no/2-1-469417


Oppgave: Hvordan ville du løst å plukke opp verdiene i authors og tags på denne artikkelen med Javascript funksjoner?

Bonusspørsmål: Finnes det noen andre muligheter for å plukke opp dette i kildekoden?"

Tusen takk for all hjelp!


  • 0

#2 0laf

0laf

    Bruker

  • Medlemmer
  • 3 550 innlegg
  •   17. september 2016

Skrevet 3. mai 2019 - 20:00

Du burde nok vært litt mer spesifikk, men forutsatt at du kan kjøre JS-kode i samme scope som nettsiden, så er window.dn.datalayer definert noe lignende :
 

window.dn.datalayer = Object.assign(window.dn.datalayer, {
  "pageName": "Dette tjente de største privatinvestorene på Oslo Børs i fjor",
  "article": {
    "authors": ["Jonas Christensen", "Anders Nybakken Kvale", "Petter Winther"],
    "category": {
      "default": "Nyheter",
      "others": ["Finans", "Nyheter"]
    },
    "publishDate": "2018-11-07T06:45:13Z",
    "tags": ["Skattelistene", "Rikard Storvestre", "Norske Skog", "Oslo Børs", "Runar Vatne", "Finans"],
    "topic": "Finans",
    "id": "2-1-469417"
  },
  "issue": {
    "extent": "Full",
    "release": "Free"
  }
});

Det betyr at du kan benytte "dot notation" for å få tilgang til objektet, sånn

dn.datalayer.article.authors

gir et array med forfattere, mens

dn.datalayer.article.tags

gir tagger.

I og med at den samme infoen finnes som meta-tagger i HTML'en, er det mulig å slå de opp i DOM i stedet

document.head.querySelectorAll("[property=article\\:tag]");

returnerer en NodeList med alle meta-tagger av typen "article:tag", altså tagger, mens

document.head.querySelectorAll("[property=article\\:author]");

gir forfattere


Dette innlegget har blitt redigert av 0laf: 3. mai 2019 - 20:09

  • 1

#3 Heizann

Heizann

    Bruker

  • Medlemmer
  • 4 innlegg
  •   6. november 2010

Skrevet 3. mai 2019 - 20:16

Utrolig takknemmelig for dette! tusen takk!


  • 0


0 bruker(e) leser denne tråden

0 medlemmer, 0 gjester, 0 skjulte brukere