programing

Wordpress 플러그인 업로드 양식이 헤드리스 브라우저에서 활성화되지 않음

padding 2023. 3. 29. 21:16
반응형

Wordpress 플러그인 업로드 양식이 헤드리스 브라우저에서 활성화되지 않음

나는 팜톰의 작은 프로젝트를 하고 있다.JS가 내 사이트에 로그인하여 플러그인을 업로드합니다.거의 다 됐어요. 다만 한가지 이상한 문제가 있어요.단,file.upload[ Install now ]버튼은 비활성화되어 있습니다.다음은 Phantom에서 렌더링한 그림입니다.

스크린샷

보시다시피 버튼은 아직 비활성화되어 있습니다.그래서 클릭하려고 하면getElementById()방법은 작동하지 않습니다.또, 다음의 방법으로 폼을 송신하려고 해도 동작하지 않습니다.

document.querySelector('form[action*="/wp-admin/update.php?action=upload-plugin"]').submit()

버튼도 수동으로 활성화하고 Javascript를 통해 클릭해 보았습니다만, 이것도 동작하지 않습니다.좋은 생각 있어요?

편집 버튼의 외부 HTML을 끌어당기려고 할 때, 다음과 같이 입력했습니다.console:

console.log(document.querySelector('#install-plugin-submit').outerHTML)

이 코드의 결과는 다음과 같습니다.

<input type="submit" name="install-plugin-submit" id="install-plugin-submit" class="button" value="Install Now">

파일 입력란에 값을 어떻게 입력했습니까?브라우저(클라이언트)의 실장에 따라서는, 파일 입력값으로서 텍스트를 추가하는 것만으로, 박스가 기동하는 일은 없습니다.change이벤트입니다.

첫 번째 (읽기: 심플)솔루션은$('form.wp-upload-form input[type="file"]').trigger('change');값을 입력한 후.(jQuery를 사용하지 않는 경우 네이티브이벤트를 트리거하는 방법을 참조하십시오.노드 선택 방법을 이미 알고 있는 것 같습니다.팬텀JS에는 네이티브 트리거 함수가 있을 수 있습니다.이것은, 그러한 종류의 애플리케이션으로 실행할 수 있는 기능이기 때문입니다).

그렇지 않으면 JS를 통해 파일을 업로드할 수 있습니다.4.7.3에 있으며 폼은 다음과 같습니다.

<form method="post" enctype="multipart/form-data" class="wp-upload-form" action="http://[server]/wp-admin/update.php?action=upload-plugin"> <input type="hidden" id="_wpnonce" name="_wpnonce" value="[nonce]"><input type="hidden" name="_wp_http_referer" value="/wp-admin/plugin-install.php"> <label class="screen-reader-text" for="pluginzip">Plugin zip file</label> <input type="file" id="pluginzip" name="pluginzip"> <input type="submit" name="install-plugin-submit" id="install-plugin-submit" class="button" value="Install Now" disabled=""> </form>

를 조립하다FormData폼의 액션태그에서 송신 URL을 스크랩하고, 반드시 난스를 포함하여 송신값을 전달해 주세요.의 조립multipart/form-dataPOST는 적절한 플러그인이 없으면 귀찮지만, 이 정도라면 더 귀찮은 일에 대처하지 않으면 안 될 것입니다.

WordPress는 자신의 폼에서 무엇을 제출하는지, 또는 같은 URL에 가짜로 던져 무엇을 제출하는지 구분할 수 없습니다. 만약 그렇다면 클라이언트 문자열 설정을 확인하고, 난스가 올바른지 확인하고, 참조자를 올바르게 설정했는지 확인하십시오.

언급URL : https://stackoverflow.com/questions/42744815/wordpress-upload-plugin-form-will-not-activate-in-headless-browser

반응형