bubble: Überprüfen ob Element existiert, auslesen und wiedergeben

Beitrag lesen

Ich generiere den HTML Code nicht, dies macht YouTube. Ich kann dort also keine ID anfügen.

Seit wann verwendet Youtube denn Greasemonkey-Scripts?

// ==UserScript==  
// @name            Extended YouTube Sidebar  
// @version         1.0.0  
// @author          KazutoTV  
// @description     You will see more options in the sidebar  
// @include            *.youtube.com/*  
// @updateVersion   0  
// ==/UserScript==  
  
  
var username = document.getElementById('yt-masthead-user-displayname').innerText;  
var newMenu = '';  
  
newMenu += '<ul class="guide-user-links yt-box"><h3><a href="/user/'+ username +'" class="guide-item  narrow-item" data-channel-id="UCcMTfKgGf_7_3HC2hhEjrMw" data-upsell="guide"><span class="display-name">'+ username +'</span></a></h3>';  
newMenu += '<a class="guide-item " href="/my_videos" data-channel-id="watch_later">Video-Manager</a>';  
newMenu += '<a class="guide-item " href="/my_favorites" data-channel-id="watch_later">Favoriten</a>';  
newMenu += '<a class="guide-item " href="/feed/watch_later" data-channel-id="watch_later">Später ansehen</a>';  
newMenu += '<a class="guide-item " href="/feed/history" data-channel-id="history">Verlauf</a>';  
newMenu += '<a class="guide-item " href="/channel/UCcMTfKgGf_7_3HC2hhEjrMw/videos?view=1" data-channel-id="playlists">Playlists</a>';  
newMenu += '<a class="guide-item" href="/inbox" data-channel-id="messages">Posteingang</a>';  
newMenu += '<a class="guide-item" href="/analytics" data-channel-id="messages">Analytics</a>';  
newMenu += '<a class="guide-item" href="http://socialblade.com/youtube/user/'+ username +'" target="_blank">Social Blade</a></ul>';  
  
document.getElementById('gh-personal').innerHTML = newMenu;

Das ist doch dein Code oder nicht?

So sieht mein Code derzeit aus, wie bereits gesagt fügt dieser nur Menüpunkte hinzu.

Ach ist es ja doch.

Innerhalb von Listen (ul- und ol-Elemente) sind nur Listen und Listeneinträge (li-Elemente) erlaubt. Du prügelst aber direkt a-Elemente rein.

Was die IDs angeht, da hab ich dich wohl falsch verstanden. Du willst quasi nur die Elemente hinzufügen, die noch nicht vorhanden sind, oder?

Nun ich gehe mal davon aus.

Die a-Elemente unterscheiden sich in alle im gleichen Attribut, nämlich @href.
Also lass finde alle a-Elemente mit http://de.selfhtml.org/javascript/objekte/node.htm#get_elements_by_tag_name@title=getElementsByTagName(), lege sie in einem http://de.selfhtml.org/javascript/objekte/array.htm@title=Array ab. Erzeuge ein zweites Array mit allen @href-Werten die du eventuell selbst hinzufügen willst. Dann  iteriere durch deine Liste mit den a-Elementen und ermittle den @href-Wert mit http://de.selfhtml.org/javascript/objekte/node.htm#get_attribute@title=getAttribute(), wenn dieser Wert in deinem zweiten Array vorkommt, lösche ihn aus dem zweiten Array.

Am Ende hast du dann ein Array mit allen @href-Werten, deren Links NICHT exisitieren.

MfG
bubble

--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye