हाँ, प्रतिस्थापन। आपको एक Math.min करने की आवश्यकता नहीं है; स्ट्रिंग की लंबाई से अधिक लंबे सूचकांक के साथ मूल लंबाई पर समाप्त होता है।
परंतु!
document.getElementById("foo").innerHTML = "<a href='" + pathname +"'>" + pathname +"</a>"
यह एक गलती है। क्या होगा अगर document.referrer में एक एपोस्ट्रोफी थी? या विभिन्न अन्य वर्ण जिनका HTML में विशेष अर्थ है। सबसे खराब स्थिति में, रेफ़र में हमलावर कोड आपके पेज में जावास्क्रिप्ट को इंजेक्ट कर सकता है, जो एक XSS सुरक्षा छेद है।
जबकि ऐसा होने से रोकने के लिए मैन्युअल रूप से पथनाम में वर्णों से बचना संभव है, यह थोड़ा दर्द है। आप भीतर के HTML स्ट्रिंग्स के साथ फ़िडलिंग की तुलना में DOM विधियों का उपयोग करके बेहतर हैं।
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);
}