হ্যাঁ, সাবস্ট্রিং আপনার ম্যাথ.মিন করার দরকার নেই; মূল দৈর্ঘ্যে স্ট্রিংয়ের দৈর্ঘ্যের চেয়ে লম্বা সূচক সহ স্ট্রেরিং।
কিন্ত!
document.getElementById("foo").innerHTML = "<a href='" + pathname +"'>" + pathname +"</a>"
এটি একটি ভুল. যদি ডকুমেন্ট.রেফারারের অ্যাস্টোস্ট্রোফ থাকে? বা এইচটিএমএল এর বিশেষ অর্থ রয়েছে এমন অন্যান্য বিভিন্ন অক্ষর। সবচেয়ে খারাপ ক্ষেত্রে, রেফারারের আক্রমণকারী কোডটি আপনার পৃষ্ঠায় জাভাস্ক্রিপ্ট ইনজেক্ট করতে পারে, এটি একটি এক্সএসএস সুরক্ষা গর্ত।
এই ঘটনাকে থামানোর জন্য ম্যানুয়ালি পাথনামে থাকা অক্ষরগুলি থেকে পালানো সম্ভব হলেও এটি কিছুটা ব্যথার। অভ্যন্তরীণ এইচটিএমএল স্ট্রিংগুলির সাথে ফিডিংয়ের চেয়ে আপনি ডিওএম পদ্ধতি ব্যবহার করা ভাল।
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);
}