javascript - 如何防止 smartgwt 污染窗口命名空间?

标签 javascript namespaces smartgwt

我在创建“日历”对象的项目中已有 javascript。该对象是window的成员。

当我将 smartgwt 添加到项目中时,原来的 Calendar 对象被 smartgwt 中打包的 smartclient 日历(ISC_Calendar)覆盖。

使用基于浏览器的 JS 调试器,我发现 smartgwt 中的所有 JS 对象都包含在 windowwindow.isc 中。我绝对不希望它们全部位于窗口级别,因为它们中的许多都有通用名称,例如日历。

在我的例子中,有问题的文件是 ISC_Calendar.js,在 gwt 编译后,它最终出现在 war//sc/modules 中。它调用以下行: isc.ClassFactory.defineClass("Calendar","Canvas","DataBoundComponent");

GWT编译位置:war/projectname/sc/modules/ISC_Calendar.js
jar位置:com.smartclient public/sc/modules/ISC_Calendar.js
源位置:找不到

我想我可以更改我正在使用的 jar 中的 javascript 文件,但这并不能真正解决更大的问题。我不想担心将来会遇到命名空间问题

最佳答案

您必须设置

var isc_useSimpleNames = false;

在加载任何 SmartClient 组件之前的脚本标记中。这样 SC 将仅在 isc.* 命名空间中注册类。

关于javascript - 如何防止 smartgwt 污染窗口命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3284447/

相关文章:

javascript - 如何使用 Javascript 单击网页上的按钮?

javascript - 检查用户何时选择使用 javascript 进行打印

javascript - ng-repeat 仅适用于尖括号 ("<>"之外的变量 {{ x }} )?

xml - 创建没有域的 XML 命名空间

java - 解析日期向格式化日期添加一天

javascript - ng-messages 不起作用

javascript - 将我的变量放在命名空间下

xslt - 在转换 xml 时处理命名空间问题

java - 富文本区域中的自动换行

java - 有用的 Java Web 应用程序库