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