2012-11-12 67 views
0

我無法控制除iframe之外的任何東西。從iframe中抓取url變量

我的表單位於iframe中,我想抓取來自父鏈接的變量。

不確定它的位置作爲父網址是不同的域。

我不能放棄直播的網址,但例如:

www.theredomain.com?ref=variable是父URL

我需要抓住從我的iframe「裁判」,這是可變在不同的域上。我已經嘗試了下面,但它似乎沒有做任何事情。

<script language="javascript"> 
function getUrlVars() { 
var vars = {}; 
var parts = window.parent.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { 
    vars[key] = value; 
}); 
return vars; 
} 
var first = getUrlVars()["ref"]; 
alert(first); 
</script> 
+1

時域是不同的不可能 – ManseUK

回答

1

如果它位於另一個域中,則無法從iframe中訪問父級。

0

發送一個是不在同一個域,如果你有機會獲得這兩個擴展他們是使用postMessage

它是相當簡單了兩個I幀之間的數據的方式。一方面,您實現了一些js作爲識別它來自的url的事件偵聽器,另一方面,您使用.postMessage方法發送到該父級iframe。如果它適用於您,請檢查瀏覽器支持。

0

感謝輸入的人 - 最終解決了它。我用下面的函數從引用網址打出來的變量

<script> 
     function getUrlVars() { 
    var vars = {}; 
    var parts = document.referrer.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m,key,value) { 
    vars[key] = value; 
     }); 
    return vars; 
     } 
    </script> 

然後把它放到我的格式如

<script> 
     $("#submit").click(function() { 
     var first = getUrlVars()["ref"]; 
     $(".referer").val(first); 
     }); 
    <script>