2009-10-11 9 views
41

मैं एक GreaseMonkey स्क्रिप्ट लिखने की कोशिश कर रहा हूं जिसमें मैं सापेक्ष लिंक वाले सभी लिंक ढूंढना चाहता हूं। ऐसा लगता है कि ऐसा करने का तरीका /^https?:/// के खिलाफ href की सामग्री से मेल खाना होगा।जावास्क्रिप्ट में "कच्चे" href सामग्री कैसे प्राप्त करें

लेकिन मुझे लगता है कि जब मैं एंकर की href विशेषता का उपयोग करता हूं, तो यह हमेशा सामान्यीकृत होता है या "http" वाले रूप में पकाया जाता है। यही कारण है, अगर एचटीएमएल शामिल हैं:

<a id="rel" href="/relative/link">inner</a> 

document.getElementById("rel").href 

रिटर्न

http://example.com/relative/link 

मैं href विशेषता में कच्चे डेटा कैसे उपयोग कर सकते हैं तक पहुँचने?

वैकल्पिक रूप से, क्या सापेक्ष लिंक खोजने का कोई बेहतर तरीका है?

+8

क्या आपने element.getAttribute ("href") की कोशिश की है? –

+0

@Ionut, आपने इसे उत्तर के रूप में क्यों नहीं जोड़ा? – James

+0

जे-पी, सवाल शुरुआत में थोड़ा अस्पष्ट था। जब मैंने अपनी टिप्पणी पोस्ट की थी तो यह स्पष्ट नहीं था कि उसने 'getAttribute' विधि या केवल 'href' प्रॉपर्टी का उपयोग करने का प्रयास किया है या नहीं। –

उत्तर

42

इसके बजाय getAttribute method आज़माएं।

+1

दुर्भाग्यवश, आईई 7 इस दृष्टिकोण के साथ पूरी तरह से योग्य यूआरएल वापस करने लगता है। –

24

विशिष्ट। मैंने सवाल पोस्ट करने के तुरंत बाद इसे तुरंत बाहर निकाला।

के बजाय:

anchor.href 

उपयोग:

anchor.getAttribute("href") 
बेशक

, यह मेरे समय लगा इस जवाब में टाइप करने की तुलना में यह हर किसी को ले लिया यह जवाब देने के लिए। (अरे, आप लोग तेज़ हैं।)

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