1

我正在使用xPages和Bootstrap 3,并询问如何让formValidation.io工作。我能够在Brahim Arkni的帮助下做到这一点,它依赖于JavaScript文件未加载的事实。XPages和加载JavaScript文件

我现在试图使用intlTelInput并接收相同类型的消息“intlTelInput不是一个函数”,所以我正在理论上这是同样的问题。所有的文件都被加载,但可能不是正确的顺序或正确的时间。

所以我的问题是,你什么时候可以从你的主题文件中调用一个.js文件(它会加载,但显示所有的.js文件在一个较长的行中,不容易搜索,以找到正确的文件加载)使用此语法:

<resource> 
      <content-type>application/x-javascript</content-type> 
      <href>formvalidation/dist/js/formValidation.js</href> 
    </resource> 

或者当你会载入的文件自定义控件的XPage内(然后就显示在单独的行寻找,看看哪些是加载时),使用:

<script src="build/js/intlTelInput.js"></script> 

我应该补充说,所有这些文件都在WebContent folde中在我的应用程序中。

有没有一种“正确”的方式来加载Javascript文件,你怎么知道什么样的顺序来加载它们?

08/15/2017: 非常感谢Per的帮助。注释掉的部分是文件中的内容,上面的代码就是我改变它的地方。我怎么会出错,因为我仍然得到相同的错误信息,以及函数a的“意外令牌” 非常感谢Per的帮助。注释掉的部分是文件中的内容,上面的代码就是我改变它的地方。怎么会有我错了,因为我仍然得到同样的错误信息,用“意外的标记”的功能

! function(a){ 
if(typeof module && module.exports){ 
    "object" == module.exports=a(require("jquery"), window, document; 
    return "object"; 
} else { 
    "function" == define(["jquery"], function(b) { 
     a(b, window, document) 
     }); 
    return "function"; 
    } 
} 
//! function(a) { 
// "function" == typeof define&&define.amd? define(["jquery"], function(b) { 
//  a(b, window, document) 
// }) : "object" == typeof module && module.exports ? module.exports = a(require("jquery"), window, document) : a(jQuery, window, document)  
//} 

回答

1

的jQuery插件INTL-TEL-输入采用AMD与道场XPages中冲突沿。请参阅this answer以了解如何禁用AMD以使插件有效的解决方案。

在你的情况,你应该的intlTelInput.min.js第一部分更改为以下(其中我已经取代define.amd):

!function(a){"function"==typeof define&&false?define(["jquery"],function(b){a(b,window,document)}): ... 
+0

请参见上面,我试图让更改为禁用AMD,但由于某种原因我没有成功。 –

+0

我已经更新了我的答案,以明确您应该更改的内容。 –

+0

解决了问题!非常感谢Per! –