2017-12-06 49 views
0

아래 코드는 safri 모바일을 제외한 모든 곳에서 작동합니다. 분명히 onchange는 실행되지 않습니다.자바 스크립트 파일 입력 onchange가 작동하지 않습니다. [ios safari 전용]

// create a hidden file input element 
var input = document.createElement("input"); 
input.type = "file"; 

// when the input content changes, do something 
input.onchange = 
function(event) 
{ 
    // upload files 
} 

// Trigger file browser 
input.click(); 

내가 거기에도 파일 입력의 다른 보이는 표현의 한 형태이며, 그들은 모두 폼 청산 해결 방법을 포함 곳 모두 시나리오를 참조하지만 비슷한 사례를 발견했다. 그건 여기서 작동하지 않을거야.

이 코드는 사진을 클릭 할 때 호출되어 새 사진을 대체 파일로 업로드합니다.

힌트가 있습니까? 내가 잘못한 건 뭐니?

+0

'onchange'는 클라이언트가 실제로 파일을 선택할 때까지 트리거되지 않습니다. 일부 브라우저에서는'.click()'이''에서 작동하지 않을 수 있습니다. – PHPglue

+0

.click은 내가 테스트 할 수있는 모든 곳에서 작동하며 파일 선택기가 iOS에서 올바르게 열립니다. 실행되지 않은 것은 파일이 선택되고 선택 대화 상자가 닫힌 후에 onchange *입니다. – resle

답변

0

내가 저주받을 것이다 : iOS의 사파리에 두 개의 별도의 조건이 다른 브라우저에 비해 필요하다 :

1) 입력은 실제로 DOM에 추가해야합니다.

2) .onchange 설정이 작동하지 않습니다. 대신 addEventListener를 사용해야합니다.