【问题标题】:gwt - how can i trigger clickEvent on FileUpload widget?gwt - 如何在 FileUpload 小部件上触发 clickEvent?
【发布时间】:2011-08-17 15:48:09
【问题描述】:

我正在尝试创建一个简单的 Button,当单击它时,我想触发 FormPanel 内的隐藏 FileUpload 小部件。我到现在为止做了两件事:

  1. 我创建了一个原生 javascript 单击 FileUpload 的函数 简单时小部件的元素 按钮被点击。这有效 在 Firefox 中很好,但它不起作用 在铬。
  2. 另外,我创建了 这:NativeEvent nevent = Document.get().createFocusEvent();//我也试过createclickEvent()
    DomEvent.fireNativeEvent(nevent, fileUploadWidget);这不 完全可以工作。

谁能帮帮我???我搜索了很多,但没有发现任何工作。

【问题讨论】:

    标签: gwt file-upload


    【解决方案1】:

    我相信 Thomas Broyer 的回答现在已经过时了。我刚刚成功使用myFileUpload.click(),没有任何问题。

    我还在FileUpload 字段上使用了setVisible(false),它可以在Chrome 中使用。尚未在 Safari 中进行测试,但现在这些问题似乎已得到解决。

    【讨论】:

    • 我已经使用 SDM 多年了,它在 Chrome 和 FF 中运行良好
    【解决方案2】:

    你也可以像这样使用 JSNI:

    private native void triggerClick(Element e) /*-{
        e.click();
    }-*/;
    

    然后调用

    triggerClick(fileInput.getElement());
    

    【讨论】:

      【解决方案3】:
      myFileUpload.getElement().<InputElement>cast().click()
      

      就是你要找的。​​p>

      要使其在基于 WebKit 的浏览器(Chrome、Safari)中工作,必须将 FileUpload “移出视图”但不能隐藏(如在 setVisible(false) 中,它将 CSS display 属性设置为 @987654324 @),例如(在 CSS 中):position:absolute; top: -1000px; left: -1000px;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-20
        • 1970-01-01
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        • 2019-04-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多