2013-02-05 19 views
7

मैं आईफ़्रेम जावास्क्रिप्ट के अंदर मूल डोमेन या यूआरएल या होस्टनाम प्राप्त करना चाहता हूं।क्रॉस डोमेन के साथ iframe में मूल डोमेन नाम कैसे प्राप्त करें?

मैंने इसके लिए document.referrer का उपयोग किया है, लेकिन यह केवल पहली बार काम करता है। इसके द्वारा मेरा मतलब है कि मेरे आईफ्रेम में फॉर्म होता है, जब उपयोगकर्ता फॉर्म को आईफ्रेम लोड करता है और रेफरर मेरा आईफ्रेम डोमेन बन जाएगा।

अब हर बार मेरा iframe भार मैं मूल डोमेन नाम चाहता हूं क्योंकि मैं इसका उपयोग कर लिंक बना रहा हूं।

उदाहरण:

$(".setUrl").each(function(){ 
       var referrer = document.referrer; 
       this.href=referrer+"/abc.html"; 
    }); 

लेकिन यह एकमात्र कारण मैं उपर्युक्त की वजह से पहली बार काम करता है। तो क्या कोई मुझे इस पर काबू पाने में मदद कर सकता है?

यदि अधिक स्पष्टता की आवश्यकता हो तो मुझे मुझसे पूछें।

उत्तर

1

आप इस के लिए एक बात कर सकते हैं:

  1. सहेजें आपके मुख्य डोमेन/यूआरएल/अपने form.And में कुछ छिपा चर में होस्टनाम कि फ़ॉर्म सबमिट करें।
  2. वर्तमान यूआरएल से दस्तावेज़ रेफरर मान सेट/सहेज/उपयोग न करें। जब आपको आवश्यकता हो, छुपा चर का उपयोग करें।

आप किसी भी तर्क का उपयोग कर सकते हैं ... जैसे:

var refval=$("#documentReferrer").val(); 
if(refval=="") 
{ 
    $("#documentReferrer").val(referrer); //So, for the future, this will not execute... 
} 
4

जैसे ही आप (document.referrer से) iframe के भीतर मुख्य डोमेन यूआरएल है, तो आप में उस URL को स्टोर कर सकते हैं स्थानीय स्टोरेज, और उसके बाद फ़ॉर्म सबमिट होने के बाद, इसे स्थानीय स्टोरेज से वापस प्राप्त करें।

कुछ की तरह:

var referringURL = document.referrer; 
//store the url in localStorage 
localStorage['referrer'] = referringURL; 

अब के बाद फ़ॉर्म सबमिट किया जाता:

var originalReferrer = localStorage['referrer']; 
//you have the original referrer back 
संबंधित मुद्दे