適用於HTML5表單的Form Bridge API form-bridge-apis-for-html-forms
您可以使用Form Bridge API開啟XFA型HTML5表單與您的應用程式之間的通訊通道。 表單Bridge API提供 連線 API來建立連線。
connect API接受處理常式做為引數。 在XFA型HTML5表單與表單Bridge之間成功建立連線後,就會叫用控制代碼。
您可以使用以下範常式式碼來建立連線。
// Example showing how to connect to FormBridge
window.addEventListener("FormBridgeInitialized",
                                function(event) {
                                    var fb = event.detail.formBridge;
                                    fb.connect(function() {
                                           //use form bridge functions
                         })
                            })
            可透過Bridge API使用 available-form-bridge-api-nbsp
getBridgeVersion()
傳回指令碼程式庫的版本號碼
- 輸入:無
 - 輸出:指令碼程式庫的版本號碼
 - 錯誤:無
 
isConnected() 檢查表單狀態是否已初始化
- 
                  
輸入:無
 - 
                  
如果XFA表單狀態已初始化,輸出: True
 - 
                  
錯誤:無
 
connect(handler, context) 連線至FormBridge,並在連線完成且表單狀態初始化後執行函式
- 
                  
輸入:
- 處理常式:在連線表單Bridge之後要執行的函式
 - context: 處理常式 函式內容(這個)設定的物件。
 
 - 
                  
輸出:無
 - 
                  
錯誤:無
 
getDataXML(options) 傳回XML格式的目前表單資料
- 
                  
輸入:
- 
                      
選項: 包含下列屬性的JavaScript物件:
- 錯誤:錯誤處理常式函式
 - success:成功處理常式函式。 此函式傳遞的物件包含 資料 屬性中的XML。
 - context: success 函式內容(這個)設定的物件
 - validationChecker:用於呼叫以檢查從伺服器收到的驗證錯誤的函式。 驗證函式傳遞錯誤字串的陣列。
 - formState:必須傳回資料XML之XFA表單的JSON狀態。 如果未指定,它會傳回目前轉譯之表單的資料XML。
 
 
 - 
                      
 - 
                  
輸出: 無
 - 
                  
錯誤: 無
 
registerConfig(configName, config) 向FormBridge註冊使用者/入口網站的特定設定。 這些設定會覆寫預設設定。 支援的設定會在設定區段中指定。
- 
                  
輸入:
- 
                      
configName: 要覆寫的組態名稱
- 
                          
widgetConfig: 允許使用者以自訂widget覆寫表單中的預設widget。 設定會覆寫,如下所示:
formBridge.registerConfig("widgetConfig":{/&;ast;configuration&;ast;/})
 - 
                          
pagingConfig: 允許使用者覆寫僅呈現第一頁的預設行為。 設定會覆寫,如下所示:
window.formBridge.registerConfig("pagingConfig":{pagingDisabled: <true | false>, shrinkPageDisabled: <true | false> })。
 - 
                          
LoggingConfig: 允許使用者覆寫記錄層級、停用類別的記錄,或者是否要顯示記錄主控台或傳送至伺服器。 設定可以覆寫,如下所示:
 
code language-javascript formBridge.registerConfig{ "LoggerConfig" : { { "on":`<true *| *false>`, "category":`<array of categories>`, "level":`<level of categories>`, " type":`<"console"/"server"/"both">` } }- 
                          
SubmitServiceProxyConfig: 允許使用者註冊提交和記錄器Proxy服務。
code language-javascript window.formBridge.registerConfig("submitServiceProxyConfig", { "submitServiceProxy" : "`<submitServiceProxy>`", "logServiceProxy": "`<logServiceProxy>`", "submitUrl" : "`<submitUrl>`" }); 
 - 
                          
 - 
                      
設定: 設定的值
 
 - 
                      
 - 
                  
輸出: 物件包含 資料 屬性中組態的原始值。
 - 
                  
錯誤: 無
 
hideFields(fieldArray) 隱藏fieldArray中提供Som運算式的欄位。 將指定欄位的presence屬性設定為隱藏
- 
                  
輸入:
- fieldArray: 要隱藏之欄位的Som運算式陣列
 
 - 
                  
輸出: 無
 - 
                  
錯誤: 無
 
showFields(fieldArray) 顯示fieldArray中提供Som運算式的欄位。 將所提供欄位的presence屬性設定為可見
- 
                  
輸入:
- fieldArray: 要顯示之欄位的Som運算式陣列
 
 - 
                  
輸出: 無
 - 
                  
錯誤: 無
 
hideSubmitButtons() 隱藏表單中的所有提交按鈕
- 輸入:無
 - 輸出:無
 - 錯誤:如果表單狀態未初始化,則會擲回例外狀況
 
getFormState() 傳回代表表單狀態的JSON
- 
                  
輸入: 無
 - 
                  
輸出: 物件,包含代表 data 屬性中目前表單狀態的JSON。
 - 
                  
錯誤: 無
 
restoreFormState(options) 從選項物件中提供的JSON狀態還原表單狀態。 狀態已套用,並在作業完成後呼叫成功或錯誤處理常式
- 
                  
輸入:
- 
                      
選項: 包含下列屬性的JavaScript物件:
- 錯誤:錯誤處理常式函式
 - success:成功處理常式函式
 - context: success 函式內容(這個)設定的物件
 - formState:表單的JSON狀態。 表單會還原為JSON狀態。
 
 
 - 
                      
 - 
                  
輸出: 無
 - 
                  
錯誤: 無
 
setFocus (som) 將焦點設定在Som運算式中指定的欄位
- 輸入: 要設定焦點的欄位的Som運算式
 - 輸出: 無
 - 錯誤: 如果Som運算式不正確,則擲回例外狀況
 
setFieldValue (som, value) 設定指定Som運算式的欄位值
- 
                  
輸入:
- som: 包含欄位的Som運算式的陣列。 用來設定欄位值的som運算式。
 - 值: 陣列包含對應於 som 陣列中所提供的Som運算式的值。 如果值的資料型別與fieldType不同,則不會修改值。
 
 - 
                  
輸出: 無
 - 
                  
錯誤: 如果有不正確的Som運算式,則擲回例外狀況
 
getFieldValue (som) 傳回指定Som運算式的欄位值
- 
                  
輸入: 陣列包含必須擷取其值的欄位的Som運算式
 - 
                  
輸出: 物件,在 資料 屬性中包含結果為Array。
 - 
                  
錯誤: 無
 
getFieldValue() API範例 example-of-nbsp-getfieldvalue-api
var a =  formBridge.getFieldValue("xfa.form.form1.Subform1.TextField");
if(a.errors) {
    var err;
     while((err = a.getNextMessage()) != null)
               alert(a.message)
} else {
   alert(a.data[0])
}
            getFieldProperties(som, property) 擷取Som運算式中所指定欄位之指定屬性的值清單
- 
                  
輸入:
- som: 包含欄位的Som運算式的陣列
 - 屬性:需要其值的屬性名稱
 
 - 
                  
輸出: 物件包含結果為 資料 屬性中的陣列
 - 
                  
錯誤: 無
 
setFieldProperties(som, property, values) 針對Som運算式中指定的所有欄位,設定指定屬性的值
- 
                  
輸入:
- som: 陣列包含必須設定其值的欄位的Som運算式
 - 屬性:必須設定其值的屬性
 - 值: 陣列包含Som運算式中所指定欄位之指定屬性的值
 
 - 
                  
輸出: 無
 - 
                  
錯誤: 無
 
表單Bridge API的範例用法 sample-usage-of-form-bridge-api
// Example 1: FormBridge.restoreFormState
  function loadFormState() {
    var suc = function(obj) {
             //success
            }
    var err = function(obj) {
           while(var t = obj.getNextMessage()) {
         $("#errorDiv").append("<div>"+t.message+"</div>");
           }
           }
        var _formState = // load form state from storage
    formBridge.restoreFormState({success:suc,error:err,formState:_formState}); // not passing a context means that this will be formBridge itself. Validation errors will be checked.
  }
//--------------------------------------------------------------------------------------------------
//Example 2: FormBridge.submitForm
  function SubmitForm() {
    var suc = function(obj) {
             var data = obj.data;
         // submit the data to a url;
            }
    var err = function(obj) {
           while(var t = obj.getNextMessage()) {
         $("#errorDiv").append("<div>"+t.message+"</div>");
           }
           }
    formBridge.submitForm({success:suc,error:err}); // not passing a context means that this will be formBridge itself. Validation errors will be checked.
  }