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! –