Javascript 在GWT中使用JS显示HTML代码
我想基于GWT中的HTML代码创建一个页面。这段代码有一些js代码 它是从字符串对象创建的。 我在我的小部件中创建HTML对象:Javascript 在GWT中使用JS显示HTML代码,javascript,java,html,gwt,Javascript,Java,Html,Gwt,我想基于GWT中的HTML代码创建一个页面。这段代码有一些js代码 它是从字符串对象创建的。 我在我的小部件中创建HTML对象: @UiField HTML htmlCont; 并将带有HTML的字符串放入内容: htmlCont.setHTML(htmlCode); 它通常是有效的,但是js代码不会被解释,当我尝试放置一些东西时 像这样: <p>Click the button to display an alert box:</p> <button
@UiField
HTML htmlCont;
并将带有HTML的字符串放入内容:
htmlCont.setHTML(htmlCode);
它通常是有效的,但是js代码不会被解释,当我尝试放置一些东西时
像这样:
<p>Click the button to display an alert box:</p>
<button onclick="clickFun()">Try it</button>
<script>
function clickFun() {
alert("I am an alert box!");
}
</script>
单击按钮以显示警报框:
试试看
函数clickFun(){
警报(“我是一个警报框!”);
}
在我的浏览器中,我得到一个错误:
未捕获引用错误:未定义clickFun
我做错了什么?您不能添加带有
HTML
元素的Javascript代码,它不会是可执行的
使用以下命令添加Javascript:
String scriptBody = "var foo = ...";
ScriptInjector.fromString(scriptBody).inject();
理想情况下,您应该自己创建小部件或元素,并使用GWT方法将处理程序附加到它们或使用它们。谢谢您的回复。你能解释一下我需要在哪里使用ScriptInjector吗?因为当我在设置html内容的方法中使用它时,它不起作用。。。在我尝试使用JSNI中的本机方法之前,代码可能不同,并且可能有多个方法。@M.S.通常这样做的原因是什么?我想用js(类似于:)测试一些html代码,而这些代码通常是different@M.S.这是用于实际产品的吗?如果不是,请在GWT应用程序之外使用jsni或简单HTML对其进行测试。