【问题标题】:How to dynamically load a gwt generated nocache.js file?如何动态加载 gwt 生成的 nocache.js 文件?
【发布时间】:2017-02-15 01:29:10
【问题描述】:

我想使用 JQuery 动态加载 GWT 生成的 foo/foo/nocache.js 文件。不知何故,这个foo/foo/nocache.js 文件没有被浏览器执行。如果我使用 JQuery 使用 GWT 样式 withOut 来正常放置脚本,那么在页面加载后它会动态生成脚本(即 jquery.onInjectDone('jquery') )。现在,如果我使用 JQuery 或 javaScript 创建此脚本标记,则它不会生成动态生成的脚本。

现在如何确保foo/foo/nocache.js 是使用jQuery 执行的?

代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
 <head>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
   </script>
  <script>
   $(document).ready(function() {
   $("#clickMe").click(function() {
   // This /foo/foo.nocache.js which is generated by GWT compiler.
       $.getScript("/foo/foo.nocache.js", function(data, textStatus, jqxhr) {
           console.log(data); //data returned
           console.log(textStatus); //success
           console.log(jqxhr.status); //200
           console.log('Load was performed.');
        });
    });
   });
   </script>
 </head>
 <body>
   <h1>Web Application Starter Project</h1>
    <a href="#" id="clickMe">clickMe</a>
    <div id="name">
    </div>      
 </body>
</html>

输出:

ReferenceError: foo 未定义

【问题讨论】:

    标签: jquery gwt


    【解决方案1】:

    根据您使用的链接器,您无法在文档创建完成后加载.nocache.js 脚本,因为它使用document.write 加载了适当的排列(请参阅IFrameTemplate.js#344XSTemplate.js#279)。这使得您页面中的所有当前内容都将被覆盖。

    否则,如果您选择 xsiframe 链接器,您可以加载脚本,但它用于计算排列位置的算法使用脚本标签或文档的位置,因此您无法使用 ajax 加载它,但插入脚本标签。

    $("#clickMe").click(function() {
      $('body').append($("<script src=foo/foo.nocache.js />")); 
    }
    

    【讨论】:

    • 谢谢马诺洛。 xsiframe 链接器非常适合我们的要求。它奏效了。我很高兴。
    • 您好 Manolo,我想使用 JQuery 为 menuItem 添加历史记录。现在我遇到了一些问题。我已经发过了。请查看以下链接:stackoverflow.com/questions/16946154/…
    猜你喜欢
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多