>source

Android WebView에 아래 코드가로드되면 JavaScript가 실행되지 않습니다.

문제는 ✓ 값을 가진 입력 상자가 HTML에 포함 된 경우에만 나타납니다. 아래 코드에서 "utf8"이라는 이름으로 텍스트 입력 필드를 참조하십시오.

이 입력 및 값은 지불 게이트웨이 제공 업체에서 반환합니다. 양식 데이터의 일부이며, 지불을 완료하려면 도메인 URL에 제출해야합니다.따라서 값과 html을 변경할 수 없습니다.

<!DOCTYPE html>
<html>
	<head>
	  <title></title>
	</head>
	<body>
	<form action=“” accept-charset=“UTF-8” method=“post”>
	   <input name=“utf8” type=“hidden” value=“&#x2713;” />
	</form>
	<script>
		alert("hello world");
	</script>
	</body>
</html>

문제는 다음에 있습니다 :

  • 삼성 Galaxy S7, Android 버전 8.0.0
  • One Plus 5, Android 버전 9

완벽하게 작업하기 :

  • Motog 5s Plus, Android 버전 8.1.0
  • 삼성 J2, Android 버전 5.1.1

  • 답변 # 1

    나를위한 해결책은 #을 % 23으로 바꾸는 것이 었습니다.

    Chrome 72에서 업데이트 웹뷰는 #를 콘텐츠의 끝으로 취급합니다. https://www.chromestatus.com/feature/5656049583390720

  • 답변 # 2

    왜 그런 값을 설정합니까?

    예에서 'type'을확인란으로 설정하지 않으시겠습니까?

    태그 안에 "checked"를 포함시켜 체크 박스를 "checked"또는 "checked"로 설정할 수 있습니다. 예 :

    <input name=“utf8” type=“checkbox” value=“Buy_Milk” checked >
    
    

    value 속성을 "buy milk"와 같이 관련있는 것으로 설정할 수 있으며 Javascript의.checked메소드를 사용하여 틱이 설정되어 있는지 확인할 수 있습니다.

    document.getElementById("utf8").checked = true;
    //Do something if true
    document.getElementById("utf8").checked = true;
    //Do something else if false
    
    

    유니 코드 참조를 값으로 추가 할 수있는 한 아무 이유도 없다.

  • 답변 # 3

    웹뷰에 해시 마크 문자가있는 즉시이 문제가 발생합니다. 나는 내가 반응 네이티브 + 크롬 72 특정 문제라고 생각했다. #?

    를 제거해도 여전히 문제

    (어쨌든 Chrome 버전>72의 반응 네이티브 안드로이드 WebViews에서 HTML을 해시 마크 (#)로 표시해야합니까?)

관련 자료

  • 이전 python - 대칭 외부 곱 매트릭스의 고유 한 요소 만 효율적으로 계산
  • 다음 R에서 백분율 (%)을 제외하는 정규 표현식의 부정적 예측