2013-07-31 2 views
0

У меня есть вход для загрузки файлов в мое приложение, и я использую ссылку и Javascript, чтобы открыть диалог.Javascript .click() не работает в сафари

<a class="uploadlink" style="cursor:pointer" onclick="document.getElementById('file').click()">Open</a> 

<input type="file" name="file" id="file" style="display:none" onchange="document.getElementById('txt').value = this.value"/> 

Мой код работает во всех браузерах и устройствах, кроме устройств Safari и Apple. Когда я нажимаю ссылку и проверяю ссылку, консоль не регистрирует ошибку. Может ли кто-нибудь предложить решение?

+2

Я бы не надеялся. См.: Http://stackoverflow.com/questions/210643/in-javascript-can-i-make-a-click-event-fire-programmatically-for-a-file-input –

+0

@PaulRoub этот вопрос с 2008 года I я уверен, что через 5 лет по крайней мере javascript продвинулся. –

+0

@FloodGravemind Javascript действительно не продвинулся в направлении стандартизации IEisms. Как насчет того, пытается ли jQuery '.click()' реализовать лучший способ программного запуска клика? – millimoose

ответ

0

Поскольку у меня было display:none в сафари, оно было не только не рендерировано, но и не упоминалось. Теперь я изменил свой код следующим образом.

решение Jquery

<a class="uploadlink" style="cursor:pointer" onclick="$('#file').trigger('click');">Open</a> 
<input type="file" name="file" id="file" style="opacity:0" onchange="document.getElementById('txt').value = this.value"/> 

Javascript Решение

<a class="uploadlink" style="cursor:pointer" onclick="document.getElementById('file').click();">Open</a> 

Он теперь работает даже в сафари.

Смежные вопросы