2016-11-03 63 views
2

我正在使用隱藏的 <input id="mfile" type="file" accept="image/*"> 並使用Google的元素目錄中的紙廠觸發它。除iOS上的Safari瀏覽器外,它可以在任何地方工作,點擊會觸發,但它不會被重定向到輸入。聚合物單擊iOS上的重新路由

通過重定向我的意思是在觸發this.$.mfile.click();

任何建議或解決方法晶圓廠一個上抽頭監聽?

+0

'Safari瀏覽iOS'是一樣'Mac上的Safari OS'。您可以在Mac OS中進行調試並檢查那裏的錯誤。 –

+0

我這麼認爲,但它適用於mac上的safari,所以它看起來不一樣。此外,調試器給我沒有錯誤 –

+0

同樣在這裏..是的,它只在iOS上,不僅Safari瀏覽器btw,與Chrome相同。它適用於Mac和Android。 – davidcv5

回答

5

受惠於聚合物鬆弛@marx_tseng,這裏是解決方案: https://polymer.slack.com/archives/general/p1478229319019481

<paper-fab id="fileFab" label="File" on-tap="_pickFile"></paper-fab> 
<input type="file" id="filePicker" hidden /> 

...

_pickFile: function(e) { 
    e.preventDefault(); 
    this.$.fileFab.blur(); 

    // cancelable is true, not work on ios simulator 
    // this.$.filePicker.click(); 

    // default cancelable is false, work on ios simulator 
    try { 
     // fixes mobile safari 
     var evt = new MouseEvent("click"); 
     this.$.filePicker.dispatchEvent(evt); 
    } catch (e) { 
     // fallback for IE11 
     this.$.filePicker.click(); 
    } 

} 
+0

謝謝,這個作品! – jpodwys

+0

是的,完美的。謝謝:) –

+1

'var evt = new MouseEvent(「click」);'在IE11中對我不起作用,所以我將它封裝在try/catch中,並且在這個函數中執行了'。file.picker.click()'抓住。現在工作很好。再次感謝! – jpodwys