Javascript - click() не работает в chrome
Я пробовал это (обратите внимание, что я использую jQuery):
function HandleFileButtonClick()
{
1. //$('#filesel').click();
2. //document.replyform.image.click();
}
HTML:
<input type="file" id="filesel" name="image" style="display: none;" />
<a href="#"><img src="<?=TF?>/img/att.png" style="height:20px;" onclick="HandleFileButtonClick();" /></a>
не работают в браузере Google Chrome... любые идеи или замена для jQuery click()
Ответы
Ответ 1
Похоже, вы нажмете на стену безопасности, предназначенную только для того, чтобы пользователь мог загружать окно загрузки файла.
Вы можете попробовать абсолютно позиционировать кнопку браузера browse
по вашей ссылке, а затем установить ее opacity
на 0
.
Ответ 2
Я здесь, чтобы помочь другим с аналогичной проблемой. Я пытаюсь использовать .trigger('click'), чтобы запустить событие click в поле FILE, которое было, если style = 'display: none', и обнаружил, что Chrome отличается от Mozilla Firefox и IE не позволяет ему работать с этим стилем.
Решение не использует display: none и вместо него используется style = 'width: 0px; height: 0px'. Результат тот же, поле FILE будет скрыто, и вы можете использовать еще одну кнопку, чтобы начать свои работы даже в Chrome на этот раз.
С наилучшими пожеланиями.
Ответ 3
Не используйте removeClass или addClass или ширину: 1px для реальных входов файлов. Просто используйте простой CSS: visiblity: hidden; position: absolute;
Это устранит все ваши проблемы в этом случае!
Ответ 4
Что вы пытаетесь выполнить?
Возможно, это то, что вы хотите:
function HandleFileButtonClick()
{
...
}
$('#filesel').click(HandleFileButtonClick);
Примечание:удаp >
Если вы пытаетесь вызвать событие щелчка мыши, вызывая функцию щелчка JQuery, вы полностью не в курсе. Этого не может быть достигнуто.
Ответ 5
вместо использования исправлений CSS, чтобы скрыть поле файла вне экрана/вне поля зрения без использования display:none
, я использую следующую стратегию:
CSS:
.hidden {display:none}
HTML
<input type="file" name="file-upload" id="file-upload" class="hidden" /><button>Upload</button>
в прототипе:
$('file-upload').removeClassName('hidden').click();$('file-upload').addClassName('hidden');
в jQuery:
$('#file-upload').removeClass('hidden').click().addClass('hidden');
Это, по-моему, бьет по разным стилям браузера. Работает для меня!