[JQUERY] 트리거) (완료 비동기 아약스에 입력 = 파일을 클릭
JQUERY트리거) (완료 비동기 아약스에 입력 = 파일을 클릭
해결법
-
1.그것의 불가능 바로 지금의 파일 팝업 창을 엽니 다 비동기 AJAX 콜백으로 인해 브라우저에서 W3C 권장 보안 기능.
그것의 불가능 바로 지금의 파일 팝업 창을 엽니 다 비동기 AJAX 콜백으로 인해 브라우저에서 W3C 권장 보안 기능.
파일 입력 요소의 활성화 동작에서 먼저 검사 알고리즘은 다음 단계 중단 다른 아무것도하지 않고하지 않을 경우 다음, 팝업을 표시 할 수있는 경우. w3c.org에서
알고리즘은 다음과 같은 경우 팝업을 표시 할 수있다 :
w3c.org
코드의 클릭 이벤트는 사용자가 트리거되지 않습니다하지만 아약스 완전한 콜백에 의해 트리거. 여기에 브라우저는 이벤트 팝업을 열려면 신뢰할 수 없음을 선언한다. 이벤트가 trusted.https로 선언 된 경우 일부 브라우저에서는 사실에 isTrusted 속성 세트를 볼 수 있습니다 //developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted를
노트
다른 브라우저 트랩 스크립트를 활성화 cick 다른 방법을 사용하여 실제 사용자의 차이.
당신이이 시나리오에서 할 수있는 것은 파일 입력 버튼 (또는 전체 양식)를 해제하고 아약스가 완료된 후 수 있도록하는 것입니다. 아약스 요청이 완료 때까지 사용자가 업로드 버튼을 클릭 늘 그런 식으로. 현재로서는 개방 팝업에 대한도 기간 제한이 있기 때문에 한 번의 클릭으로 모두를 할 수있는 다른 방법이 없습니다. 내가 크롬 체크하면 기간은 1000MS입니다. 사용자 동작 후 1000MS는 창이 열리지 않습니다.
-
2.JQuery와 자체가 말한다, 트리거는 파일 업로드 및 앵커 등의 요소에 대해 작동하지 않습니다. (소스 - https://learn.jquery.com/events/triggering-event-handlers/)
JQuery와 자체가 말한다, 트리거는 파일 업로드 및 앵커 등의 요소에 대해 작동하지 않습니다. (소스 - https://learn.jquery.com/events/triggering-event-handlers/)
이 경우에 그래서, 당신은 수동으로 다음과 같은 자바 스크립트 기능을 사용하여 이벤트를 만들어야 할 수도 있습니다.
의 샘플 코드 + 정의 기능은 모질라의 개발자 사이트에서 찾을 수 있습니다 위의-말했다
https://developer.mozilla.org/samples/domref/dispatchEvent.html
어쩌면, 이것은 당신을 도움이 될 것입니다.
-
3.나는 지금 작동하는 해결책을 가지고 있습니다. 그것은 가까운 장래에 작동하지 않을 수 있도록 보안 위에서 Tkay 언급 기능을 우회으로는, 해킹입니다.
나는 지금 작동하는 해결책을 가지고 있습니다. 그것은 가까운 장래에 작동하지 않을 수 있도록 보안 위에서 Tkay 언급 기능을 우회으로는, 해킹입니다.
나는 아약스 요청에 대한 대기 내가 파일 브라우저 대화 상자를 시작하기 전에 검사 할 데이터를 반환하는 타임 아웃을 소개합니다.
customFileUploadButton.addEventListener('click', function(e) { var returnValueToCheck; //Value we want to check against //reference to vanilla JS ajax function that takes callback ajax(function(ajaxData) { returnValueToCheck = ajaxData; }); setTimeout(function() { if (returnValueToCheck !== undefined) { //dummy check for example file.click(); } else { console.log("Criteria not fulfilled"); } }, 1000);//timer should be larger than AJAX timeout });
솔직히 말해서, 나는 비트 확실치 이유를 정확히 분명히 일반적 행동의 종류를 금지 브라우저 특정 테스트를 통과 제외하고이 작품. 내가 해킹으로 간주 그에.
내 예는 바닐라 JS이지만, jQuery를 버전을 쉽게 만들 수 있어야합니다. 전체 예를 들어이 JSFiddle를 참조하십시오.
(이 때문에 잠재적 인 오류와 과실에 대한 의견을 기쁘게, 기여에 처음으로 벤처)
from https://stackoverflow.com/questions/29728705/trigger-click-on-input-file-on-asynchronous-ajax-done by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 무엇 AJAX이며 어떻게 작동합니까? [복제] (0) | 2020.10.18 |
---|---|
[JQUERY] 어떻게 텍스트 영역에서 텍스트를 선택하세요? [복제] (0) | 2020.10.18 |
[JQUERY] 자바 스크립트 / jQuery를에 문자열의 픽셀 길이를 결정? (0) | 2020.10.18 |
[JQUERY] 대신 접두사를 사용하는 나는 그들의 브라우저를 업그레이드하기 위해 사이트 방문자를 물어보고 싶은 (0) | 2020.10.18 |
[JQUERY] ASP.NET MVC에서 버튼 클릭에 대한 부분보기 렌더링 (0) | 2020.10.18 |