Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 告诉iframe何时位于新URL上_Javascript_Html_Iframe_Src - Fatal编程技术网

Javascript 告诉iframe何时位于新URL上

Javascript 告诉iframe何时位于新URL上,javascript,html,iframe,src,Javascript,Html,Iframe,Src,我正在使用JavaScript创建一个小的iframe应用程序,我似乎无法找到一种方法来更新我在有人单击iframe内的链接时创建的URL栏中的URL 它需要是瞬时的,最好不需要每隔毫秒检查document.getElementById('IDOFIRAME').src的值是否已更改 我似乎找不到一个简单的属性来告诉url什么时候改变了,所以如果没有,那么以编程方式解决这个问题也可以 谢谢你的帮助 相反,您是否可以向框架的内容添加代码,使其向容器框架引发事件 在IE中,“OnReadyState

我正在使用JavaScript创建一个小的iframe应用程序,我似乎无法找到一种方法来更新我在有人单击iframe内的链接时创建的URL栏中的URL

它需要是瞬时的,最好不需要每隔毫秒检查document.getElementById('IDOFIRAME').src的值是否已更改

我似乎找不到一个简单的属性来告诉url什么时候改变了,所以如果没有,那么以编程方式解决这个问题也可以


谢谢你的帮助

相反,您是否可以向框架的内容添加代码,使其向容器框架引发事件


在IE中,“OnReadyStateChanged”事件可能会提供您想要的内容。

这将很难做到,因为它被认为是xss,大多数浏览器都会阻止它


最有可能的解决方法是使用AJAX。

首先,只有当iframe的源指向与父窗口相同的域时,您才可以执行您想要执行的操作。因此,如果您有一个页面page.html,它与另一个页面iframed.html相关联,那么这两个页面必须位于同一个域(例如www.example.com/page.html和www.example.com/iframed.html)

如果是这种情况,可以在iframed.html页面中执行以下操作:

<script type="text/javascript">
window.onload = function() {
    var links = document.getElementsByTagName('a');
    for (var i=0, link; link = links[i]; i++) {
        link.onclick = function() {
            window.parent.location.href = '#' + encodeURIComponent(this.href);
        }
    }
}
</script>

不幸的是,我没有运行这段代码来测试它,但它非常简单,应该可以解释这个想法。让我知道进展如何

您可以向iframe添加一个onload事件,然后监视该事件-只要框架完成加载,它就会被抛出(当然,它也可能是相同的URL…

iframe内容很可能不是我自己的内容。完全事实上,它的起始页面是谷歌。谢谢你的建议!好的,我想我先试试这个。谢谢如果是同一个URL,这根本不是问题。这是一个非常好的解决方案,但不幸的是,我不是iframe内网站的所有者,因此我无法放置此代码。如果我试图找出窗口位置,但它不是我的站点,那么这将被视为XSS,而不是解决方案。谢谢你的帮助!我会让你知道这是怎么回事。如果是这样的话,恐怕你运气不好-你可以查看iframe的src属性,但你永远无法访问iframe的contentWindow。当iframe窗口导航时,其contentWindow.location会更新,但iframe元素的src保持不变。有一种方法,但它需要iframe页面来协作——它可以自己打开一个iframe到域上的页面,并传递自己的url。一种类似的技术也用于
window.onload = function() {
    var url = window.location.hash.substr(1);
    if (url) {
        document.getElementById('iframe').src = url;
    }
}