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');

Это, по-моему, бьет по разным стилям браузера. Работает для меня!