public class JavaScriptInjector {
private static ScriptElement createScriptElement() {
ScriptElement script = Document.get().createScriptElement();
script.setAttribute("type", "text/javascript");
script.setAttribute("charset", "UTF-8");
return script;
}
protected static HeadElement getHead() {
Element element = Document.get().getElementsByTagName("head")
.getItem(0);
assert element != null : "HTML Head element required";
return HeadElement.as(element);
}
/**
* Injects the JavaScript code into a
* {@code <script type="text/javascript">...</script>} element in the
* document header.
*
* @param javascript
* the JavaScript code
*/
public static void inject(String javascript) {
HeadElement head = getHead();
ScriptElement element = createScriptElement();
element.setText(javascript);
head.appendChild(element);
}
}
이 작동합니다. URL에서로드하려는 경우 element.setText(javascript)
대신 element.setSrc(yourURL)
을 지정할 수 있습니다. HTTP GET으로 URL에서 자바 스크립트를로드하고 어쨌든 setText를 수행 할 수도 있습니다.
이전에 그렇게하지 않았습니다. 어떻게'ScriptInjector' 클래스의 소스를 프로젝트에 복사 할 수 있습니까? 내가 그것을 어디에 두어야하는지. –