JavaScript:从iframe检测源更改

时间:2012-07-04 04:25:27

标签: javascript jquery html css iframe

这可能是一个很长的镜头,但我想知道是否有人知道是否有一种方法可以检测(使用Javascript或JQuery)iframes源是否已更改 - 即:如果用户在iframe中更改页面。

我想写一些类似的东西:

if (iframesource == http://www.site.com/urlA){
do something
}

else if (iframesource == http://www.site.com/urlB){
do something different
}

我已经知道,如果页面在站点内发生更改,iframe元素(<iframe src="http://www.site.com">)的src属性不会更改,因此使用JQuery检测属性是否已用完。

有人知道这是否可行?任何建议将不胜感激!感谢

2 个答案:

答案 0 :(得分:4)

好的,基本上经过大量的研究后我发现,只有当iframe指向现有站点或服务器中的URL时,这才有效。如果您指向其他网站(例如YouTube),它将无效。

将信息从一个站点传输到另一个站点的最佳方法仍然是使用JSON。

答案 1 :(得分:0)

您需要构建一个javascript函数,它可以执行以下操作:

  1. 的onload。
  2. 按元素ID获取src值。
  3. 将此传递给temp_object
  4. 使用set_timeout(100ms)输入递归函数。
  5. 将temp_object与object进行比较。
  6. 如果是,请执行某些操作,temp_object = object。
  7. @EDIT -----&gt; anti-sop anti-xss

    <html>
        <head>
            <script type="text/javascript">
                    function GetIFrameUrl()
                    {
                            alert('url = ' + document.frames['frame1'].location.href);
                    }
            </script>
        </head>
        <body>
            <a href="#" onclick="GetIFrameUrl();">Find the iFrame URL</a>
            <iframe name="frame1" src="http://www.google.com" width="100%" height="400"></iframe>
        </body>
    </html>
    

    Getting the current src of an Iframe using JQuery