当前位置:  开发笔记 > 编程语言 > 正文

如何获取iframe的当前位置?

如何解决《如何获取iframe的当前位置?》经验,为你挑选了2个好方法。

我已经构建了一个基本的数据输入应用程序,允许用户浏览iframe中的外部内容并从同一页面快速输入数据.其中一个数据变量是URL.理想情况下,我希望能够使用javascript将iframe当前网址加载到文本框中.我现在意识到,由于安全问题,这不会发生.

有人在服务器端做过什么吗?或者知道浏览器控件中的任何.Net浏览器.最终目标是为用户提供一种简单的方法来提取他们在iframe中查看的页面的网址.它不一定是iframe,浏览器中的浏览器将是理想的.

谢谢,亚当



1> Joaquin Cuen..:

我没有在Firefox 3的一些测试对比的价值.src,并.documentWindow.location.hrefiframe.(注意:在Chrome中documentWindow调用contentDocument它,因此不会.documentWindow.location.href在Chrome中使用.contentDocument.location.href.)

src始终是在没有用户交互的情况下在iframe中加载的最后一个URL.即,它包含URL的第一个值,或者您从包含窗口使用Javascript设置的最后一个值:

document.getElementById("myiframe").src = 'http://www.google.com/';

如果用户在iframe内导航,则无法再使用src访问URL的值.在前面的示例中,如果用户离开www.google.com,您执行以下操作:

alert(document.getElementById("myiframe").src);

您仍然可以获得" http://www.google.com ".

documentWindow.location.href 仅当iframe包含与包含窗口位于同一域中的页面时才可用,但如果它可用,则它始终包含URL的正确值,即使用户在iframe中导航也是如此.

如果您尝试访问documentWindow.location.href(或任何内容documentWindow)并且iframe位于不属于包含窗口的域的页面中,则会引发异常:

document.getElementById("myiframe").src = 'http://www.google.com/';
alert(document.getElementById("myiframe").documentWindow.location.href);
Error: Permission denied to get property Location.href

我没有测试任何其他浏览器.

希望能帮助到你!



2> 小智..:
document.getElementById('iframeID').contentWindow.location.href

您根本无法访问跨域iframe位置.


如果浏览器允许的话,这很简单.您将在我的答案中看到完全相同的DOM路径,这在Safari,Chrome,Firefox 3+或IE*中不起作用,因为它不安全.
正如我在我的回答中所指出的,如果iframeID中的url位于包含窗口的域之外,则这不起作用.
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有