除了iframe之外,我无法控制任何事情。
我的表单位于iframe中,我想获取一个来自父链接的变量。
不确定它作为父网址的可能性是否是另一个域。
我无法提供实时网址,但例如:
www.theredomain.com?ref=variable是父网址
我需要从我的iframe中获取'ref'变量,该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>
答案 0 :(得分:1)
如果iframe位于其他域中,则无法访问该iframe中的父级。
答案 1 :(得分:0)
在不在同一个域中的两个iframe之间发送数据的一种方法是,如果您有权访问这两个iframe以扩展它们,那就是使用postMessage
这是相当直接的。一方面,你实现了一些js作为事件监听器,它识别它来自的url,另一方面,你使用.postMessage方法发送到那个父iframe。检查浏览器支持是否适用于您。
答案 2 :(得分:0)
感谢输入人员 - 终于解决了它。我使用下面的函数来从引用者URL
中分出变量 <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>