2011-12-03 42 views
9

क्या कोई तरीका है कि मैं जावास्क्रिप्ट के साथ rel = "noreferrer" के लिए समर्थन का पता लगा सकता हूं?मैं rel = "noreferrer" समर्थन का पता कैसे लगा सकता हूं?

<a href="http://example.com" rel="noreferrer">link without referral</a> 

समाधान - $ .browser हटा दिया गया है, और यह jQuery के भविष्य के रिलीज में एक प्लगइन के लिए ले जाया जा सकता है।

var is_webkit = $.browser.webkit; 
if(is_webkit) { 
    alert('supports rel="noreferrer"'); 
} 
+0

आकर्षक सवाल। +1! –

+0

@ डेविड थॉमस आप ऊपर पोस्ट किए गए समाधान की जांच करना चाहेंगे। – andufo

उत्तर

0

नहीं, कोई नहीं है। रेफरर हेडर जावास्क्रिप्ट के डोमेन के बाहर हैं।

यदि यह विशेष रूप से महत्वपूर्ण है, तो आप यह जांच सकते हैं कि ब्राउज़र (navigator.userAgent) किसी को समर्थन देने या noreferrer का समर्थन करने के लिए जाना जाता है या नहीं।

+0

मुझे पता है कि यह बहिष्कृत है, लेकिन अभी भी मेरे उद्देश्य के लिए काम करता है: var is_webkit = $ .browser.webkit; – andufo

+5

यह गलत है। मैं iflames के साथ hotlink.js (https://github.com/eligrey/hotlink.js/blob/master/hotlink.js) में noreferrer समर्थन का पता लगाता हूं। –

1

आप सिद्धांत में href विशेषता में दिए गए लिंक का उपयोग करके XMLHttpRequest बना सकते हैं।

लौटा HTTP शीर्षलेख या तो संदर्भकर्ता की जानकारी होगी या नहीं, इस पर निर्भर करता है कि ब्राउज़र ने इस कार्यक्षमता को लागू किया था या नहीं। (मुझे लगता है कि)

आप कोड मिला JavaScript का उपयोग कर में HTTP हेडर का उपयोग कर सकते हैं: Accessing the web page's HTTP Headers in JavaScript

+0

मूल समाधान :) मैं इसका उपयोग नहीं कर सकता क्योंकि मुझे सीटू – andufo

+1

में जांच करने की आवश्यकता है हां, मुझे पता है कि आपका क्या मतलब है। यदि कहें, लिंक एक नई विंडो में खोला गया है, तो आप इसे जावास्क्रिप्ट में कैप्चर कर सकते हैं, और उसके बाद अपने पृष्ठ पर हेडर जानकारी देखें। – Alex

15

मैं एक name विशेषता के साथ एक छिपा iframe बनाने के द्वारा noreferrer समर्थन का पता लगाने, और फिर मैं अपने target के साथ एक <a rel="noreferrer"> लिंक बनाने iframe के name विशेषता के बराबर विशेषता है, और वर्तमान डोमेन पर किसी भी संसाधन के लिए लिंक बिंदु है। about:blank से लिंक करना भी काम करता है, लेकिन इसमें फ़ायरफ़ॉक्स और आईई में समस्याएं हैं, इसलिए आपको अपने सर्वर पर जानबूझकर खाली फ़ाइल से लिंक करना चाहिए। संसाधन आईफ्रेम में लोड होने के बाद, [the iframe].contentDocument.referrer === "" देखें। यदि यह सत्य है, noreferrer समर्थित है।

मेरे कार्यान्वयन का एक उदाहरण hotlink.js में उपलब्ध है। विशेष रूप से, on_ready देखें।

+0

संबंधित: https://github.com/Modernizr/Modernizr/issues/963 –

संबंधित मुद्दे