stu*_*hat 46 javascript asp.net iframe dom
我已经构建了一个基本的数据输入应用程序,允许用户浏览iframe中的外部内容并从同一页面快速输入数据.其中一个数据变量是URL.理想情况下,我希望能够使用javascript将iframe当前网址加载到文本框中.我现在意识到,由于安全问题,这不会发生.
有人在服务器端做过什么吗?或者知道浏览器控件中的任何.Net浏览器.最终目标是为用户提供一种简单的方法来提取他们在iframe中查看的页面的网址.它不一定是iframe,浏览器中的浏览器将是理想的.
谢谢,亚当
Joa*_*ela 50
我没有在Firefox 3的一些测试对比的价值.src,并.documentWindow.location.href在iframe.(注意:在Chrome中documentWindow调用contentDocument它,因此不会.documentWindow.location.href在Chrome中使用.contentDocument.location.href.)
src始终是在没有用户交互的情况下在iframe中加载的最后一个URL.即,它包含URL的第一个值,或者您从包含窗口使用Javascript设置的最后一个值:
document.getElementById("myiframe").src = 'http://www.google.com/';
Run Code Online (Sandbox Code Playgroud)
如果用户在iframe内导航,则无法再使用src访问URL的值.在前面的示例中,如果用户离开www.google.com,您执行以下操作:
alert(document.getElementById("myiframe").src);
Run Code Online (Sandbox Code Playgroud)
您仍然可以获得" 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
Run Code Online (Sandbox Code Playgroud)
我没有测试任何其他浏览器.
希望能帮助到你!
小智 19
document.getElementById('iframeID').contentWindow.location.href
Run Code Online (Sandbox Code Playgroud)
您根本无法访问跨域iframe位置.
小智 0
这有帮助吗?
http://www.quirksmode.org/js/iframe.html
我只在 Firefox 中测试过这个,但如果你有这样的东西:
<iframe name='myframe' id='myframe' src='http://www.google.com'></iframe>
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方式获取其地址:
document.getElementById('myframe').src
Run Code Online (Sandbox Code Playgroud)
不确定我是否正确理解你的问题,但无论如何:)