javascript - GWT:我可以在 html 页面中包含 js 还是需要 `ScriptInjector` ?

标签 javascript html gwt

我正在向我的 GWT 页面添加一个 html 文件,如下所示:

HTML htmlPanel = new HTML();
String html = MyHtml.INSTANCE.getHtml().getText();
htmlPanel.setHTML(html);
RootPanel.get().add(htmlPanel);

这有效...但嵌入的脚本文件不运行。我在 Chrome 的“元素”选项卡中看到应加载脚本的行,但显然并非如此(“脚本”选项卡中未显示,并且 debugger 行未命中)。

作为测试,我将 html 文件直接加载到浏览器中(不是通过 GWT),并且脚本确实显示在“脚本”选项卡中并且确实运行了代码(因此这不是脚本标记本身的问题) .

那么...为什么/如何在 GWT 嵌入时不运行脚本? (如果我尝试的话,我不知道如何阻止嵌入式脚本运行!);o)

我是否必须使用 ScriptInjector 才能完成这项工作(我在工作方面遇到了自己的问题,这是另一个线程的主题)?如果是这样...为什么?

感谢您的帮助!

最佳答案

通过将脚本添加到 HTML 小部件并将其附加到页面来创建脚本将不起作用,浏览器不支持此操作。 GWT 没有这样做,而是浏览器在这样做,或者更确切地说,浏览器正在这样做,因为 HTML 小部件的工作方式。有关为什么会出现这种情况的具体信息,请参阅 https://stackoverflow.com/a/13392818/860630 上的精彩答案。深入细节。

还有其他几种方法可以做到这一点,但它们都归结为 ScriptInjector 已经在做的工作 - 如果 ScriptInjector 不适合你,那么其他方法似乎不太可能选项将表现出任一行为。也许编辑您的问题以使用 ScriptInjector 并描述您的问题,或者用它提出一个新问题?我见过 ScriptInjector 不起作用的唯一情况与 $wnd 相关,或者脚本附加到哪个页面(请参阅 com.google.gwt. core.client.ScriptInjector#TOP_WINDOW)。

关于javascript - GWT:我可以在 html 页面中包含 js 还是需要 `ScriptInjector` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27488714/

相关文章:

java - IncompatibleRemoteServiceException : This application is out of date, 请点击浏览器的刷新按钮

html - GWT StockWatcher 示例应用程序——找不到 CSS

javascript - Knockout js 中嵌套模板中的动态数据绑定(bind)

javascript - 如何使用 jquery 将文本从一个页面复制并粘贴到另一个页面?

javascript - javascript 中的递归回溯(闭包)

jquery - 如何将 inner-html 从 div 附加到目标 div?

javascript - 我可以克隆、编辑和追加一个 div 吗?

javascript - 函数完成后运行 jquery 行

java - 无法在 Netbeans 7.1 中安装 GWT4NB 插件

javascript - 在 JS 中序列化输入,在 php 中返回字符串