2017-03-31 7 views
0

In meiner Chrome-Erweiterung versuche ich über ein Inhaltsskript Informationen von einer Seite (den Wert von "data-timestamp": 1490893300813) zu erhalten, aber das Ergebnis zeigt 'null'.Wert des Daten-Zeitstempel-Attributs abrufen

//content script: 
 

 
    var tsx = document.getElementsByClassName("date");  
 
    var i; 
 
    const ts = new Array; 
 
    for (i = 0; i < tsx.length; i++) { 
 
    var ts[i] = tsx[i].getAttribute("data-timestamp");   \t 
 
    console.log("Timestamp" + i + ": " + ts[i]); 
 
    }
<!--source code from page:--> 
 

 
<div class="thread"> 
 
     <span data-timestamp="1490893300813" class="date"> 
 
      <span class="absolute">Do, 30.03.2017, 19:01</span> 
 
      <span class="relative"></span> 
 
     </span> 
 
</div>

Ich habe auch bemerkt, dass das Daten-Zeitstempel-Attribut sichtbar ist, wenn ich Quelle-Code der Seite zeigen (Ctrl +U), aber es ist nicht sichtbar in DevTools ...

+0

Ich sehe nicht, wie Sie Ihren Titel auf Ihre Frage bezieht. –

+0

Ich habe geändert thx – bimbam

+0

'Daten' Attribute sind leicht zugänglich durch [' element.dataset'] (https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset). – Makyen

Antwort

1

Sie können document.querySelector('.date') verwenden, um das Element mit der date Klasse auszuwählen. Von dort können Sie die element.dataset.timestamp erhalten, um den Zeitstempel zu erhalten.

Ihr Code könnte so etwas wie folgt aussehen:

//Get the timestamp as a number (+ is used to convert from a string to a number). 
 
var timestamp = +document.querySelector('.date').dataset.timestamp; 
 
console.log('Timestamp:', timestamp); 
 

 
//Convert to a Date and display in ISO format for the UTC timezone. 
 
var date = new Date(timestamp); 
 
console.log(date.toISOString());
<div class="thread"> 
 
     <span data-timestamp="1490893300813" class="date"> 
 
      <span class="absolute">Do, 30.03.2017, 19:01</span> 
 
      <span class="relative"></span> 
 
     </span> 
 
</div>

+0

große antwort danke! :) – bimbam