2013-02-10 95 views
2

问:是否可以以任何方式在Caja模板中添加ExtJS 4?带有ExtJS 4.1的Google Apps脚本

例如,书写负荷指令时到HTML头:

<link rel="stylesheet" type="text/css" href="http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css"/> 
<script type="text/javascript"> 
    document.write("\x3Cscript type='text/javascript' src='http://cdn.sencha.io/ext-4.1.1a-commercial/ext-all.js'>\x3C/script>"); 
</script> 

的东西结果是这样的:

Invalid script or HTML content: http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+6635 - 6636: Expected <Identifier> not : http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+6621 - 6652: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+6621 - 6672: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+82707 - 82708: Expected <Identifier> not : http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+82677 - 82724: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+82677 - 82744: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+111019 - 111020: Expected <Identifier> not : http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+111002 - 111036: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+111051 - 111052: Expected <Identifier> not : http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+111037 - 111068: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+111002 - 111088: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+200996 - 200997: Expected <Identifier> not : http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+200982 - 201013: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+200982 - 201033: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+217948 - 217949: Expected <Identifier> not : http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+217931 - 217965: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+217931 - 217985: Skipping malformed content http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+219058 - 219075: Not a valid uri: 'url(#default#VML)' http://cdn.sencha.io/ext-4.1.1a-commercial/resources/css/ext-all.css:18+219049 - 219075: Skipping malformed content HtmlOutput:11+132 - 12+1: Unclosed string. 

只注意到卡哈验证,错误都涉及到CSS,但而Ext对象不能构造 - 这没有什么区别。因为它似乎只有jQuery和jQueryUI可用作precajoles:Google Code。如果jqGrid至少能够工作,这可能是另一种选择(但是因为我打算使用ExtJS,我宁愿只是将环境切换到更加兼容的东西)。

Maestro HTML-app只是说:'无法加载ext-all.js'。没有试图将“本地”lib包含在驱动器上 - 但我想这样可能会应用同样的JS版本。

安全嵌入第三方脚本是一般无坏主意 -

但如果安全功能不能被覆盖 - 这是阻碍创新。

可能应该假设它不被支持,并继续前进; 只剩下这些专有解决方案 - 他们可能会建立自己的互联网,但没有我。

+0

你能发布你用来包含脚本/样式表的html吗? – 2013-02-10 03:48:04

回答

0

我在Caja工作。我没有特别注意过ExtJS,但是对于一个新的JS框架来说,通常会遇到麻烦的原因是Caja没有准确地实现一些小功能或特殊情况。网络平台非常庞大,我们必须优先考虑人们期望使用的功能,因为“在继续之前实施一切”是不切实际的。

我建议你file an enhancement request支持ExtJS。如果您要检查ExtJS的CSS并确定Caja拒绝哪部分内容(例如,通过将错误与未修剪版本中的行号进行比较,或者必要时删除部分直至不被拒绝),那么这将特别有用。我们可以专注于添加必要的功能。


请注意,你不应该期望document.write荷兰国际集团一<script>元件的作用;动态定义的脚本通常在Google Apps脚本的当前Caja部署中不可用。改为在HTML中使用文字<script>。这很可能就是为什么你只看到与CSS有关的错误,既没有成功,也没有看到ExtJS本身的错误。 (我刚刚记录了we ought to give an error message in this case。)

+0

我假设主要问题是带有@标签的指南针编译主题 - 并且Caja始终尝试提供最顶层的框架。 很可能我不是唯一一个希望看到这个特性成为现实的人 - 但Caja和ExtJS的工作方式可能无法完全结合(这当然比限制有用)。如果Google能够提供任何可信任的CDN,这将允许某些覆盖。同时我会试着让jgGrid运行 - 只是因为我需要一个数据网格 - 而不是电子表格。会接受你的答案,因为解释已经有所帮助。 – 2013-02-14 05:58:00

+0

对我来说,可以理解的是基本功能比第三方支持更重要。但请检查它提供的组件:http://www.sencha。com/products/extjs/examples - ,因为您可以看到它与业务应用程序都非常相关。 – 2013-02-14 06:12:23

+0

@syslogic这不是一个“信任”的问题 - 你加载的所有代码,包括像jQuery这样的东西,都在同一个环境中。我们根本没有100%准确地模拟浏览器在Caja之外做什么 - 我们愿意,但我们还没有。 “商业应用程序”不是问题;只是你是第一个(我听说过)要求ExtJS的人。几乎每个人都想运行jQuery;有些想运行Angular或Prototype;等等。我真的建议你在我们的问题跟踪器上提出请求,看看ExtJS,如上所述;它有助于确定我们的优先事项。 – 2013-02-14 15:54:13