أهمية المرجع
يوجد رأس مستقيم في طلب HTTP ، مما يشير إلى مصدر حركة المرور الحالية. على سبيل المثال ، انقر على رابط على www.sina.com.cn/sports/ للوصول إلى الصفحة الرئيسية لـ CCTV.com ، ثم المرجع هو www.sina.com.cn/sports/. في JavaScript ، يمكننا الحصول على نفس المعلومات من خلال document.referrer. من خلال هذه المعلومات ، يمكننا أن نعرف القناة التي يأتي الزوار إلى الصفحة الحالية. هذا مهم للغاية لتحليلات الويب.
ومع ذلك ، لأسباب مختلفة ، في بعض الأحيان تكون القراءة في JavaScript هي سلسلة فارغة. دعنا نلخص الظروف التي ستضيع فيها إحالة.
تعديل كائن الموقع للتنقل في الصفحة
كائن الموقع هو كائن عملي للغاية للتنقل في الصفحة. لأنه يسمح لك بتغيير جزء فقط من عنوان URL. على سبيل المثال ، قم بالتبديل من اسم مجال CN إلى اسم مجال COM ، تظل أجزاء أخرى دون تغيير:
نسخة الكود كما يلي:
window.location.hostName = "example.com" ؛
ومع ذلك ، فإن تعديل طريقة التنقل في الصفحة عن طريق التنقل في الصفحة سيؤدي إلى فقدان المرجع بموجب IE.
إرجاع سلسلة فارغة تحت IE5.5+
Chrome 3.0+ ، Firefox 3.5 ، Opera9.6 ، Safari 3.2.2 GROW COM COM NAME
افتح نافذة جديدة بواسطة Window.Open
مثال:
نسخة الكود كما يلي:
<a href = "#" onClick = "window.open ('http://www.google.com')"> الوصول إلى Google </a>
سيؤدي النقر فوق هذا الرابط إلى فتح موقع Google في نافذة جديدة.
نسخة الكود كما يلي:
JavaScript: Alert (document.referrer)
نتائج الاختبار:
إرجاع سلسلة فارغة تحت IE5.5+
Chrome 3.0+ ، Firefox 3.5 ، Opera9.6 ، Safari 3.2.2 GROW COM COM NAME
إذا تم إعادة توجيهها بهذه الطريقة تحت اسم المجال نفسه ، فيمكننا الوصول إلى كائن WindowW.Opener للحصول على معلومات الإحالة المفقودة. الرمز كما يلي:
نسخة الكود كما يلي:
<script type = "text/javaScript">
var referrer = document.referrer ؛
إذا (! المرجع) {
يحاول {
if (window.opener) {
// إذا كان هناك نطاق متقاطع تحت IE ، فسيتم طرح استثناء إذن
// Safari و Chrome ليس لهما خصائص
alnovener = window.opener.location.href ؛
}
}
catch (e) {}
}
</script>
إذا عبرت المجال ، فستكون عاجزًا ~
اسحب الماوس لفتح نافذة جديدة
تعتبر السحب والإفلات الماوس عادة مستخدم شائع جدًا في الوقت الحاضر. ومع ذلك ، فإن الصفحات التي تم فتحها بهذه الطريقة تُفقد جميع المرجعين بشكل أساسي. علاوة على ذلك ، في هذه الحالة ، من المستحيل استخدام طريقة النافذة. Opener للحصول على المرجع المفقود.
تم اختباره:
Maxthon 2.5.2 ، البرنامج المساعد Firegesture لـ Firefox ، Chrome 3.0+ ، Opera 9.6 ، Safari 3.2.
انقر على الرابط الداخلي للفلاش
عند النقر فوق Flash للوصول إلى موقع ويب آخر ، يكون وضع المرجع أكثر فوضى.
في IE ، تكون القيمة من خلال المستند. REFERRER من العميل JavaScript فارغًا ، ولكن إذا كنت تستخدم برنامج مراقبة حركة المرور للنظر فيه ، فستجد أنه في الواقع ، فإن رأس المرجع في طلب HTTP له قيمة. قد يكون هذا خطأ في تطبيق IE. في الوقت نفسه ، تشير هذه القيمة إلى عنوان ملف الفلاش ، وليس عنوان صفحة الويب المصدر.
بعد النقر فوق Flash تحت Chrome 4.0 للوصول إلى نافذة جديدة ، يشير المرجع أيضًا إلى عنوان ملف الفلاش ، وليس عنوان صفحة الويب المصدر.
Chrome 3.0 و Safari 3.2 متماثلان ، وسيخسر كلاهما معلومات الإحالة.
Opera ، مثل Firefox ، قيمة المرجع هي عنوان صفحة الويب المصدر.
HTTPS تقفز إلى HTTP
عند القفز من موقع HTTPS إلى موقع HTTP ، لن يرسل المتصفح إحالة. سلوك هذه المتصفحات الرئيسية هو نفسه.
على سبيل المثال ، عندما نستخدم Google Reader أو Gmail ضمن HTTPS ، ننقر على رابط للانتقال إلى موقع ويب آخر.
تأثير فقدان المرجع على مراقبة حركة الإعلان
إذا فقدت المرجع ، ستفقد تحليلات الويب جزءًا مهمًا جدًا من المعلومات ، خاصة بالنسبة لحركة المرور الإعلانية ، فمن المستحيل معرفة المصدر الفعلي. في الوقت الحالي ، تستخدم العديد من مواقع الويب التي تستخدم إعلانات Google Adsense. . وبالتالي ، ستقوم العديد من أدوات إحصائيات المرور بتصنيف هذا الجزء من حركة المرور على أنها "حركة مرور مباشرة" ، والتي تعادل المستخدمين الذين يكتبون عنوان URL مباشرة.
في هذه الحالة ، من الضروري السماح لـ AD Plagiar بإضافة معلمات تتبع محددة إلى عنوان URL الخاص بالصفحة المقصودة عند تقديم الإعلان.
على سبيل المثال ، إذا تم النقر على إعلان فلاش ، فإن عنوان URL للوصول إلى http://www.example.com/ من أجل مراقبة هذه القناة التي تأتي منها حركة المرور هذه ، يمكننا تعديل عنوان URL للهبوط في هذا المكان وتغييره إلى http: // www.example.com/؟src=sina ، على غرار هذه الطريقة ، ثم استخدم رمز JavaScript لاستخراج معلمة SRC هذه في الصفحة المقصودة ، بحيث يمكنك الحصول على معلومات المصدر للإعلان.
عند خدمة Google Adwords ، يحتوي نظام الخلفية على خيار "علامة تلقائية". و Adwords الإعلان الخلفية. وبهذه الطريقة ، يمكنك معرفة الحملة التي تتوافق مع حركة الإعلان ، والتي تتوافق مع مصدر الإعلانات والكلمات الرئيسية للمعلنة وغيرها من المعلومات. إنه يشبه في الواقع الفكرة المذكورة أعلاه. إنه فقط أن Google قد قمت تلقائيًا بإجراء تعديلات URL لك.
الحل لفرقة المرتبات تحت IE
إذا تم استخدام طريقة window.location.href للقفز في IE ، فإن قيمة المرجع فارغة. وإذا قفز المرجع في العلامة ، فلن يكون المرجع فارغًا. لذلك ، يمكن أن يحل الرمز التالي هذه مشكلة IE
نسخة الكود كما يلي:
وظيفة gotourl (url) {
if (window.vbarray) {
var gotolink = document.createElement ('a') ؛
gotolink .href = url ؛
document.body.appendchild (gotolink) ؛
gotolink .click () ؛
}آخر{
window.location.href = url ؛
}
}
لا سمح المتصفحات بعدم إحضار المرجع عند الوصول إلى الروابط
عندما ننقر على رابط من موقع ويب واحد لإدخال صفحة أخرى ، سيقوم المتصفح بإضافة قيمة مرجع إلى الرأس لتحديد الصفحة المصدر لهذه الزيارة. لكن هذا النوع من الشعار قد يتسرب من خصوصية المستخدم.
• استخدم حل HTML5 الذي تمت إضافته حديثًا ، استخدم Rel = "Noreferrer" لإعلان سمة الاتصال على أنها noreferrer.
• استخدم صفحة وسيطة ، ولكن في الواقع أرسل إحالة ، مثل استخدام توجيه اتصال Google ، noreferrer.js.
• استخدم بروتوكول JavaScript للربط للنقل ، راجع التعليمات أدناه.
نافذة جديدة تعادل Target = "_ فارغ":
نسخة الكود كما يلي:
دالة open_window (الرابط) {
var arg = '/u003cscript/u003location.replace("'+Link+'")/u003c/script/u003e' ؛
Window.Open ('JavaScript: window.name ؛' ، arg) ؛
}
</code>
إن اللجوء إلى اتصال يعادل Target = "_ Self":
نسخة الكود كما يلي:
وظيفة إعادة توجيه (رابط) {
var arg = '/u003cscript/u003etop.location.replace ("'+link+'")/u003c/script/u003e' ؛
var iframe = document.createElement ('iframe') ؛
iframe.src = 'javaScript: window.name ؛' ؛
iframe.name = arg ؛
document.body.appendChild (iframe) ؛
}
</code>