ใช่สตริงย่อย คุณไม่จำเป็นต้องทำ 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);
}