<li id="entsperrt"><a href="http://externer_link3.xhtml" target="iframe1">externer_link3</a></li>
Was mache ich da noch falsch?
target verweist auf den Namen eines Fensters, das diese Sitzung selbst geöffnet hat. Da du alle Links in dasselbe Fenster schickst, wird es beim ersten Mal geöffnet und dann wiederverwendet.
Leider bringen manche Browser das Fenster beim Neuladen nicht in den Vordergrund (trotz self.focus();) und der Benutzer glaubt, der Link funktioniert nicht.
Für die Lösung fällt mir Javascript ein, damit kannst du den src= des iframe ändern. Must mal antesten, ob vorher schon ein src= vorhanden sein muss (bei deinem Beispiel ist der iframe ja zunächst leer).
Gruß, Linuxbär