2016-11-03 4 views
2

私は隠した <input id="mfile" type="file" accept="image/*"> を使用していて、googleの要素カタログのペーパーファブでトリガーしています。 iOS上でのサファリ、クリックの発射を除いてはどこでも動作しますが、入力にリダイレクトされません。リダイレクトによってiOSでのポリマーのクリックの再ルーティング

私はthis.$.mfile.click();

任意の提案や回避策をトリガーファブ上のタップリスナーを意味ですか?

+0

'iOS'のSafariは、Mac OS'上の'のSafariと同じです。 Mac OSでデバッグしてエラーをチェックすることができます。 –

+0

私はそう思っていましたが、マックのためにサファリで動作するので、同じではないように見えます。また、デバッガは私にエラーが発生しません –

+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でラップして 'this。$。filePicker.click()'をキャッチ。今素晴らしい仕事。再度、感謝します! – jpodwys

関連する問題