Προς το περιεχόμενο

δυναμικη διαχειριση metadata στην σελιδα


slevinkelevra

Προτεινόμενες αναρτήσεις

Καλησπερα

 

Ολα τα ειχαμε, θελουμε και dublin core  :-D

 

Εχω μια videogallery και πιανω δυναμικα data απο σερβερ να τη δειξω στον client. Μαζι με τιτλους κτλ ερχονται κ metadata, dublin core με στοιχεια οπως περιγραφη κτλ. 

 

Εχω μια ετοιμη δομη στη σελιδα του client σαν 

<meta name="DC.Source" id="videdsource" />
<meta name="DC.Description" id="metadesv" />
<meta name="DC.Creator" id="videdcreator" />
<meta name="DC.Contributor" id="videdcontr" />

κτλ κτλ για ολα τα στοιχεια του dublin core.

 

Καθε φορα που αλλαζει βιντεο θελω να πηγαινω και να αλλαζω τις τιμες των metadata με κωδικα του στιλ

document.getElementById("videdcreator").content=arrayvid[i];

Το οποιο δεν δουλευει. Αν φορτωσω τη σελιδα και ανοιξω source code, σε πεδια του dublin core που ειναι στανταρ βλεπω τις τιμες , πχ. 

<meta name="DC.Rights" content="Copyright 2014, H Emma Stone goustarei ton slevinkelevra, alla einai me ton allo gia kalipsi. Sobara!"  />

ενω σε πεδια που υποτιθεται αλλαζουν δυναμικα, δε βλεπω τιποτα πχ

<meta name="DC.Contributor" id="videdcontr" />

Πως το φτιαχνω αυτο? 

 

Γενικα, πως χειριζομαστε δυναμικα τα metadata του καθε στοιχειου μιας σελιδας? Για να βγαζουν και νοημα σε οποιον τα ψαχνει? Και να τα "βλεπει" ανετα μια αλλη εφαρμογη, αμα επικοινωνουν? 

 

 

Ευχαριστω πολυ

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τα metadata αποτελούν μέρος της σελίδας σου η οποία στέλνεται από έναν server σε έναν client. Δεν γίνεται ο client να αλλάξει την σελίδα με το περιεχόμενο που έλαβε. Το ότι τα 'δυναμικά πεδία' στέλνονται κενά είναι γιατί ο server δεν έχει τις απαιτούμενες πληροφορίες να τα γεμίσει πριν τα στείλει. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καθε φορα που αλλαζει βιντεο θελω να πηγαινω και να αλλαζω τις τιμες των metadata με κωδικα του στιλ

document.getElementById("videdcreator").content=arrayvid[i];

Το οποιο δεν δουλευει.

 

Φυσικά δεν δουλεύει, γιατί αυτό που χρειάζεσαι είναι μάλλον αυτό:

document.getElementById("videdcreator").setAttribute("content",arrayvid[i]);

BTW, congrats on Emma! ;)

 

EDIT: Ώπα! Είναι meta, και τα meta δεν υποστηρίζουν id! Mάλλον πρέπει να αντικαταστήσεις το id με name και μετά

document.getElementsByName("videdcreator")[0].setAttribute("content",arrayvid[i]);
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν τη ξερω την Emma , αλλα μας εκλεψε στο ζυγι :P

 

Περα απο τη πλακα, τυπικα δεν γινετε αυτο 

 

 

Mάλλον πρέπει να αντικαταστήσεις το id με name

γιατι θα εχει τοτε 2 names. Τεσπα το δοκιμασα θετωντας ως δευτερο name το videdcreator (και χωρις id) και παλι αλλαγη δεν ειδα. 

 

Επισης δοκιμασα με το name που ηδη εχει (DC.Name) και παλι τιποτα. Αυτη τη φορα ειπα να βαλω και ενα αδειο content να βρισκετε, επειδη πιο πριν δεν ειχα κατι, αλλα παλι τιποτα. 

 

Το source, αφου πατησω το κουμπι , που δεν κανει αλλαγη

 

 

 

post-228178-0-17129100-1401484158_thumb.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν τη ξερω την Emma , αλλα μας εκλεψε στο ζυγι :P

 

Περα απο τη πλακα, τυπικα δεν γινετε αυτο 

 

γιατι θα εχει τοτε 2 names.

Σωστός! Δικό μου λάθος.

 

Επισης δοκιμασα με το name που ηδη εχει (DC.Name) και παλι τιποτα.

 

Αυτό είναι το σωστό. Μόνο που η .onclick θέλει function. Δηλαδή:

document.getElementById('change').onclick=myfunc;

function myfunc()
    {
    document.getElementsByName("DC.Creator")[0].setAttribute("content",arrayvid[i]);
    }

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θα σου μαρανω τα φυλλα τση καρδιας σου, αλλα παλι δεν εγινε τιποτα. Δες συννημενο.

Ρε συ μηπως αλλαζει , αλλα δεν φαινετε στον πηγαιο? Δυσκολακι, αφου αν βαλω μια στανταρ τιμη στο content θα τη δω στο πηγαιο. 

 

 

post-228178-0-88670000-1401493867_thumb.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πω πω, σε εχω πρηξει, αλλα και παλι δε βλεπω τιποτα. 

Αυτος ειναι ολος ο κωδικας της σελιδας

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<h1>Heeeeeeeeeeeeeeeeeeeeeeeello</h1>
<h2><a href="index.html">index</a></h2>

<title>testing site</title>
<body>

<br>
<p>based on : insomnia question about dynamically handling metadata</p>
<p> http://www.insomnia.gr/topic/530307-%CE%B4%CF%85%CE%BD%CE%B1%CE%BC%CE%B9%CE%BA%CE%B7-%CE%B4%CE%B9%CE%B1%CF%87%CE%B5%CE%B9%CF%81%CE%B9%CF%83%CE%B7-metadata-%CF%83%CF%84%CE%B7%CE%BD-%CF%83%CE%B5%CE%BB%CE%B9%CE%B4%CE%B1/ </p>
<br>
<br>

<meta name="DC.Creator"/>
<button id="change" type="button">change it</button>

</body>
</html>

<script type="text/javascript"> 
document.getElementById('change').onclick=myfunc;
var ha="ha";
function myfunc()
    {
    document.getElementsByName("DC.Creator")[0].setAttribute("content",ha);
    }

</script>

Ναι, view source κανω (Προβολη κωδικα σελιδας στο chrome) και συνεχιζω να βλεπω το απολυτο κενο (συννημενο). Εσυ στο js fiddle πως ειδες το Meta να αλλαζει?

 

Ευχαριστω και παλι

 

 

post-228178-0-01063500-1401538355_thumb.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το view source σου δείχνει το source που ήρθε από τον server. Όσο και να τροποποιηθεί το dom στον client, αυτό δεν αλλάζει. Θα το βλέπεις με inspect element (δεν θυμάμαι πως είναι στον chrome...).

 

Στο fiddle, κάνε inspect στο button, επειδή το meta δεν είναι visual. Αλλά στον inspector θα το βλέπεις από πάνω του.

Μετά κάνε click στο button. Voila!

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...