从iframe中获取iframe url变量

时间:2012-12-06 16:43:26

标签: javascript jquery

我想尽可能使用jquery / javascript并在iframe中获取url变量frim

我的iframe链接如下所示 - 源动态更改

<iframe class="box" src="lightbox.html?img=images/lightbox/blue-shoes.jpg" scrolling="no" frameborder="0"></iframe>

然后,从lightbox.html iframe内部 - 我想抓取img(images / lightbox / blue-shoes.jpg)变量并更改图像的来源

问题是 - 我无法弄清楚如何从iframe中抓取iframe源url变量

我试图避免使用php

我已将此用于类似但无法使用的东西

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

2 个答案:

答案 0 :(得分:1)

如果你控制iframe里面的脚本,这里有一个使用document.location.herf而不是referrer的例子。 lightbox.html:

<html>
<head>
<script>

    function getUrlVars() {
    var vars = {};
    var parts = document.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
            vars[key] = value;
    });
    return vars;
    }
    var first = getUrlVars()["img"];
    alert(first);
    var test = function(){
        first = 'images/red.jpg'
        alert(first);
    }
</script>

</head>
<body>
    <div>Inside</div>
    <button onclick="test()">change url</button>
</body>
</html>

答案 1 :(得分:0)

要使用JQuery执行此操作,请尝试此操作。

您的页面上的图片lightbox.html,为其提供广告ID,例如

<img id="ImageID" src="whatever" />

然后使用此JQuery更改src属性

$('#ImageID').attr('src', 'whatever');

更新

事实上这可能不会起作用,因为它是一个IFrame我相信由于same origin policy

你不会被允许这样做