0

Android WebView에로드 된 웹 페이지에 일부 CSS를 동적으로 삽입하려고합니다.Android 2.1 에뮬레이터에서 자바 스크립트 주입 문제가 있지만 2.2에서 괜찮습니다.

일반 HTML 페이지의 본문에 삽입하면 "클릭"을 탭할 때 Android 2.2의 페이지 요소에 빨간색 상자가 추가되지만 2.1에서는 실패합니다. 어쨌든 에뮬레이터에서 실행될 때).

<a href="javascript:(function() { var style=document.createElement('style');style.type='text/css';style.innerHTML='* { border: 1px solid red; }';document.getElementsByTagName('head').item(0).appendChild(style);})();">Click me.</a> 

이 JS를 Android 2.1에서 작동시킬 수있는 방법이 있다면 어떤 아이디어가 있습니까? 아니면 그것은 에뮬레이터 버그입니까?

감사합니다.

답변

1

마지막으로 해결책을 찾았으며 내 자신의 질문에 답할 수 있습니다!

Android 2.1은 스크립트 태그에 innerHTML을 사용하지 않는 것 같습니다. 이 작업을 수행하는 올바른 방법은 document.createTextNode()를 사용하는 것이며 2.1 및 2.2에서 모두 작동합니다.

<a href="javascript:(function() { var style=document.createElement('style');style.type='text/css';css = document.createTextNode('* { border: 1px solid red; }');style.appendChild(css);document.getElementsByTagName('head').item(0).appendChild(style);})();">Click me to change all styles</a> 
관련 문제