【问题标题】:JS Submit() Access denied IFrame IEJS Submit() 访问被拒绝 IFrame IE
【发布时间】:2012-05-15 23:19:19
【问题描述】:

我有一个 iframe 中的表单,其输入类型文件带有一个 onchange 事件,只要输入被修改,就会提交表单,然后我在 IE 中得到一个错误,仅适用于其他浏览器。

例如(简化版)

<form id="form1">
<input type="file" id="_file" onchange="document.forms[0].submit();$('#form1').hide()" />
<input type="button" onclick="$('#_file').click();" />
</form>

然后 IE 8 给出这个错误:

SCRIPT5: Access is denied.

我相信这与 IE 认为从用户未触发的事件提交存在安全风险这一事实有关,或者它可能与它发生在 iframe 中的事实有关。关于如何解决这个问题的任何想法?

编辑

看起来问题可能与 input[type:file] 被隐藏的事实有关,它的宽度和 opacity:0 很小。在让它显示并在那里放置一个提交按钮后它可以工作,但我需要它在没有显示输入 [type:file] 且没有提交按钮的情况下工作。但是尝试在 onchange 中显示和提交 input[type:file] 仍然不起作用。

【问题讨论】:

  • 这是一个应该有帮助的帖子 - stackoverflow.com/questions/1886547/…
  • 我没有看到与我的问题的相关性,我没有动态创建 iframe。
  • 无论 iFrame 的创建如何,您都会收到相同的错误。 iFrame 的 document.domain 是什么?是否与父文档匹配?
  • 目前是“localhost”(在 onchange 事件中),iframe 所在的页面也显示“localhost”,所以看起来域不同。

标签: javascript jquery html


【解决方案1】:

似乎问题是当您以编程方式设置和提交文件输入时 IE 不喜欢它。现在发现这个问题所以放弃了。当用户在 IE 中时,我选择使用 Jquery uploadify 作为后备。这对闪存产生了不必要的依赖,但这是我能想到的最佳选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 2015-07-01
    • 2010-12-26
    • 1970-01-01
    • 2013-12-20
    • 2015-01-09
    • 2012-03-13
    相关资源
    最近更新 更多