我想加载生成的 GWTfoo/foo/nocache.js
使用 JQuery 动态文件。不知何故这个foo/foo/nocache.js
文件不被浏览器执行。如果我通常使用 GWT 样式而不使用 JQuery 放置脚本,那么在加载页面后,它会动态生成一个脚本(即 jquery.onInjectDone('jquery') )。现在,如果我使用 JQuery 或 javaScript 创建此脚本标记,那么它不会生成动态生成的脚本。
现在我怎样才能确保foo/foo/nocache.js
是使用 jQuery 执行的吗?
Code:
<!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>
Output:
参考错误:foo 未定义
根据您使用的链接器,您无法加载.nocache.js
文档创建完成后的脚本,因为它通过使用加载适当的排列document.write
(see IFrameTemplate.js#344 and XSTemplate.js#279)。这使得页面中当前的所有内容都将被覆盖。
否则,如果您选择xsiframe
链接器,您可以加载脚本,但它用于计算排列位置的算法使用脚本标签或文档的位置,因此您无法使用 ajax 加载它,而是插入脚本标签。
$("#clickMe").click(function() {
$('body').append($("<script src=foo/foo.nocache.js />"));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)