【问题标题】:How to access fields in page within iframe?如何在 iframe 中访问页面中的字段?
【发布时间】:2011-08-04 08:00:15
【问题描述】:

我有一个包含 iframe 的 .aspx 页面。我正在从我的 ssl 服务器绘制嵌入页面。当我尝试使用 javascript 修改嵌入页面的字段时(我将数据放入隐藏字段,以便我可以在服务器端使用它来识别客户端)我收到拒绝访问消息。如果我在本地运行整个事情,我不会遇到任何问题,所以真正的问题是我必须在我的 ssl 服务器上进行哪些更改才能允许更改这些字段?

javascript 真的很简单:

            window.frames["frame1"].document.forms['password_form']["username"].value = document.getElementById("username").value;

正如我所说的,除了我将 iframe src 更改为 ssl 时...

这是一个预编译的应用程序,我想知道这是否会有所作为。页面本身不是只读的。

谢谢,罗恩。

【问题讨论】:

    标签: visual-studio-2008 .net-3.5 ssl


    【解决方案1】:

    Same Origin Policy 禁止跨来自不同来源的文档编写脚本。协议 (HTTP/HTTPS) 是源的一部分。因此,如果只有 iframe 在 HTTPS 上,浏览器必须禁止在您的示例中访问 window.frames["frame1"].document

    简单的解决方案是对主页和 iframe 都使用 HTTPS。

    一种解决方法是可能的,但根据您的需要,这可能会太麻烦:http://softwareas.com/cross-domain-communication-with-iframes(阅读时间长但内容丰富)。

    【讨论】:

    • 谢谢雅库布。在上周自己做了一些研究之后,我意识到我实际上是在尝试做跨站点脚本,这不是我的意图。这是我老板想要的设置方式!所以我最终在这里有义务......
    猜你喜欢
    • 1970-01-01
    • 2012-04-18
    • 2015-12-19
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多