草庐IT

javascript - 如何将 CSS 应用于 Google Closure 库中的组件?

我正在接触Google的闭包库。我创建了一个带有SelectWidget的简单页面,但它显然需要一些样式(元素看起来像纯文本,在下面的示例中,菜单项在按钮下方弹出)。我假设库支持样式——我怎样才能连接到它们?SVN中的每个示例页面似乎都使用了自己的CSS。缩写示例如下:goog.require('goog.dom');goog.require('goog.ui.Button');goog.require('goog.ui.MenuItem');goog.require('goog.ui.Select');varinputDiv=goog.dom.$("inputContainer");

javascript - 这是 Closure 的正确陈述吗?

引自StoyanStefanov的面向对象的JavaScript(第84页):Ifyou'reatpointa,you'reinsidetheglobalspace.Ifyou'reatpointb,whichisinsidethespaceofthefunctionF,thenyouhaveaccesstotheglobalspaceandtotheF-space.Ifyou'reatpointc,whichisinsidethefunctionN,thenyoucanaccesstheglobalspace,theF-spaceandtheN-spaceYoucannotreach

javascript - 如何使用 ^ :export, 标记使用 `reify` 创建的方法,以便 Closure 编译器不重命名它们?

当使用reify创建JavaScript对象时,如何使用^:export标记方法,以便GoogleClosure编译器不会在高级模式下重命名它们?例如:(reifyObject(foo[this]...)(bar[this]...))我试过了(reifyObject(^:exportfoo[this]...)(^:exportbar[this]...))但这似乎没有帮助,并且名称仍然会随着高级优化而改变。如果没有办法做到这一点,除了创建一个普通的js-obj并使用set!之外,我该如何使用方法构造一个JavaScript对象将函数设置为属性(我不确定如何防止高级优化破坏事物)?

javascript - 是否有可能为 `goog.debug.Logger` 获得更好的输出(如 `console.log` )?

google-closure库还包含一个loggingsystem大多数开发人员应该很熟悉。这很好。不幸的是,您从中获得的输出不如使用某些浏览器/插件提供的console.log时的表现力。例如,如果您在Chrome中编写console.log(window),控制台将显示一个您可以交互式检查的对象。使用google-closure记录器时,它不会那样做。我假设它会在内部简单地将对象的字符串表示形式传递给console.log。所以你失去了很多便利。正因为如此,我仍然继续使用console.log。但是,如果运气不好,您忘记将其从生产代码中删除,您的代码将在没有console.log(

javascript - 将 Google 闭包模板与 jQuery 结合使用

我们开始使用JavaScript和HTML5创建一个应用程序,它将使用restAPI来访问服务器资源,利用我们的开发团队已经熟悉的jQuery的强大和易用性。这个应用程序将被制作成多语言的。我们后来决定,我们将使用JavaScript编写我们的DOM,这将使我们能够灵活地使用我们的UI位与我们的其他应用程序集成,并将使用jQueryUI小部件创建我们自己的小部件。然后,只需在我们其他应用程序的相关页面中添加引用JavaScript文件的脚本标签,我们就可以完成针对该特定功能的大部分集成。因为使用JavaScript创建DOM需要大量编码,我们开始寻找可以帮助我们轻松将HTML转换为Ja

javascript - 组织和合并 JS 文件,Google Closure?

我正在尝试合并我所有的插件,这样我就可以改变这个:为此:主要想法是有一个工具可以将我的网站所需的所有插件“自动导入”到我的plugins.js文件中,并在编译时缩小它们。我一直在使用GoogleClosure(编译器的可下载Java版本)进行测试,我想出了如何缩小文件但我无法导入外部文件。所以我想问你是否可以告诉我GoogleClosure是否是我正在寻找的工具,或者我是否应该使用其他工具或方法。对于“自动导入”,我的意思是:插件/HELLO.JSfunctionhello(name){alert('Hello,'+name);}插件.JS@importhello.jshello('N

javascript - TypeScript 可以为 Closure Compiler 输出注释吗?

我正在使用TypeScript,我想使用Closure-Compiler来缩小和混淆构建TS代码后获得的JS输出。我读到GCC能够根据类型定义进行混淆。据我所知(如果我错了,请纠正我)这意味着如果我的代码上有类型注释,那么GCC将使用它们来进行更好的混淆。例如,对于obj.someProp,GCC目前在我的代码中查找someProp属性名称的所有实例,而不考虑它在哪个对象上,并替换所有实例到相同的混淆名称(例如o.a)。但是如果我在我的代码上有类型注释,GCC将能够知道哪个对象属于哪种类型并相应地对其进行混淆-因此两种不同类型的相同属性名称将被混淆为两个不同的名称。问题:我的理解正确吗

javascript - 谷歌地图故障 : Closures & Passing By Reference

我遇到了一些Googlemap/Javascript问题。我想我知道问题出在哪里,但就是不知道解决办法。我的问题的一个例子是here.无论您点击什么标记,第二个都会出现。我显然将错误的信息传递到我的事件监听器中,但我似乎无法获得正确的代码。这是代码的一部分:首先,这是我的部分代码:if(GBrowserIsCompatible()&&mapResults!=null){//ReadintheJSONvarmapDetailsArray=loadJSON();//Createamapvarmap=newgoogle.maps.Map2(document.getElementById(el

javascript - Closure 编译器 - a++ >= 3 可以变成++a > 3 吗?

我承认几天前我问了一个问题,为什么ClosureCompiler不缩短某些代码,乍一看,这个代码是可以缩短的,但这个原因不适用于这种情况,我不太确定为什么会这样'在此缩短。我的代码是:vara=0;functionb(){returna++>=3;}现在有前置递增和后置递增。不同之处在于返回值-a++返回a并且然后递增它,++a首先递增a和then返回它。这归结为我的代码可以缩短为(忽略空格删除):vara=0;functionb(){return++a>3;}但是,ClosureCompiler似乎并没有改变(或识别)这一点。因此我的问题是:当使用++a>代替a++>=时会有什么副作

javascript - 使用具有高级优化功能的 Closure 编译器时如何在 javascript 中保留全局变量?

我有自己的Javascript库,我想通过使用具有高级优化功能的Google闭包编译器来缩小它。通过查看docs我看到了如何声明在库外使用的函数。但是我找不到一种方法来保存在我的库中声明的全局变量。Closure编译器只是删除它们,因为它认为它们从未被使用过。有人可以帮忙吗?编辑:示例代码:varvariable_1=true;这是在我的库开始时全局定义的,但它从未在库本身中使用过。当它包含在某些页面中时,它会在库外使用。但是Closure编译器不知道,这就是它删除这些声明的原因。 最佳答案 闭包编译器无法移除声明为window["