var length = 3;
var myString = "ABCDEFG";
var myTruncatedString = myString.substring(0,length);
// The value of myTruncatedString is "ABC"
Итак, в вашем случае:
var length = 3; // set to the number of characters you want to keep
var pathname = document.referrer;
var trimmedPathname = pathname.substring(0, Math.min(length,pathname.length));
document.getElementById("foo").innerHTML =
"<a href='" + pathname +"'>" + trimmedPathname + "</a>"
да, подстрока. Вам не нужно делать Math.min; подстрока с более длинным индексом, чем длина строки, заканчивается на исходной длине.
Но!
document.getElementById("foo").innerHTML = "<a href='" + pathname +"'>" + pathname +"</a>"
Это ошибка. Что, если бы в document.referrer был апостроф? Или различные другие символы, которые имеют особое значение в HTML. В худшем случае код злоумышленника в реферере может внедрить JavaScript на вашу страницу, что является дырой в безопасности XSS.
Хотя можно вручную экранировать символы в имени пути, чтобы предотвратить это, это немного неудобно. Лучше использовать методы DOM, чем возиться со строками innerHTML.
if (document.referrer) {
var trimmed= document.referrer.substring(0, 64);
var link= document.createElement('a');
link.href= document.referrer;
link.appendChild(document.createTextNode(trimmed));
document.getElementById('foo').appendChild(link);
}