使用Chris Tooheys关于“对话框内的文件上传”的提示的奇怪行为

时间:2013-04-28 15:09:50

标签: iframe xpages xpages-extlib

我刚建立了一个对话框来创建新文档,包括一些可编辑字段和Chris Toohey's great blog entry之后的文件上传。此解决方案在ExtLib对话框中使用iFrame来解决该控件的限制。但是在Firefox(V 20)中对它进行测试时,所有通常可编辑的字段似乎都被阻止了:点击它们,光标很快就会闪烁,然后就会在某个地方发送;看起来好像有什么东西会执行js .blur()方法,但是找不到任何东西。但是,页面上的所有butttons都可以工作。所以我可以上传文件,但我无法在对话框的字段中输入值(使用FF,见下文)。这里更奇怪的是:只要我在某个字段中单击鼠标右键然后选择Firebug的“使用Firebug检查元素”,表单中的所有字段都将被打开以进行编辑,并且它们保持这种状态直到我关闭对话框。

我只是尝试使用MSIE(繁琐以及IE8模式)做同样的事情:这里我首先被提示允许在此上下文中打开网站“about:blank”。一旦我允许它,一切都很好:我可以在对话框中编辑字段,上传文件等。在FF中不是这样。

不知何故,似乎某些安全设置会阻止表单被编辑,可能会阻止某些XSS或其他东西。但我在FF中找不到任何允许我的网站加载到对话框的iFrame中的设置。

更新:我刚刚将此客户端脚本添加到其中一个字段的onblur事件中:

alert("go away!")

事实上,如果我在第一次启动警报时调出对话框并单击该字段。并且:从那时起所有领域都可用。

更新#2:刚刚在对话框中放置了另一个editBox(“outerField”),但在iFrame之外。我还创建了一个新的非常简单的Xpage加载到iFrame中。新的简单Xpage只包含一个editBox(“innerField”),没有别的。结果是这样的: 加载对话框后,光标自动放入“outerField”。单击“innerField”,光标将立即发送回“outerField”...

更新#3:尝试了一些事情:

  • Google Chrome的行为就像FF
  • 创建了一个Xpage,其中包含托管iframe等的自定义控件。结果:如果我在自己的页面中运行这些东西,一切都很好。所以它必须是在这里引起麻烦的extlib对话框
  • 最后尝试使用iframe标记的沙盒属性,没有任何明显的差异

1 个答案:

答案 0 :(得分:0)

魔术!我真的不知道那是什么。突然间它现在正在工作,并且在所有的brwosers中。我只是将代码单独留了几天,突然间它按预期工作了。怪异!