Hallo!
Kennt sich hier jemand ein bisschen mit JavaScript aus? Es geht um die hier im Forum verwendete Funktion zur einfachen Markierung von Code mittels des Links "Alles auswählen".
Code
function selectCode(a)
{
// Get ID of code block
var e = a.parentNode.parentNode.getElementsByTagName('CODE')[0];
// Not IE and IE9+
if (window.getSelection)
{
var s = window.getSelection();
// Safari
if (s.setBaseAndExtent)
{
s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);
}
// Firefox and Opera
else
{
// workaround for bug # 42885
if (window.opera && e.innerHTML.substring(e.innerHTML.length - 4) == '<BR>')
{
e.innerHTML = e.innerHTML + ' ';
}
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);
}
}
// Some older browsers
else if (document.getSelection)
{
var s = document.getSelection();
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);
}
// IE
else if (document.selection)
{
var r = document.body.createTextRange();
r.moveToElementText(e);
r.select();
}
}
Alles anzeigen
Wieso funktioniert das auch, wenn mehrere Code-Abschnitte innerhalb einer Seite vorkommen, obwohl nur das erste Element selektiert zu werden scheint?
Würde mich freuen, wenn mir das jemand erklären könnte. Bei meinem Nachbau wird nämlich immer nur das erste Element selektiert.
Liebe Grüße
Hugo