您可以使用Form Bridge API來開啟XFA型HTML5表單與您的應用程式之間的通訊通道。 Form Bridge API提供 connect 用於建立連線的API。
此 connect API接受處理常式作為引數。 在XFA型HTML5表單與表單橋接器之間成功建立連線後,就會叫用控制代碼。
您可以使用以下範常式式碼來建立連線。
// Example showing how to connect to FormBridge
window.addEventListener("FormBridgeInitialized",
function(event) {
var fb = event.detail.formBridge;
fb.connect(function() {
//use form bridge functions
})
})
在加入formRuntime.jsp檔案之前,請確定您已建立連線。
getBridgeVersion()
傳回指令碼程式庫的版本號碼
isConnected() 檢查表單狀態是否已初始化
輸入:無
輸出: True 如果XFA表單狀態已初始化
錯誤:無
connect(handler, context) 連線至FormBridge並在連線完成且表單狀態初始化後執行函式
輸入:
輸出:無
錯誤:無
getDataXML(options) 以XML格式傳回目前的表單資料
輸入:
選項: 包含下列屬性的JavaScript物件:
輸出: 無
錯誤: 無
registerConfig(configName, config) 向FormBridge註冊使用者/入口網站的特定設定。 這些設定會覆寫預設設定。 在設定區段中指定支援的設定。
輸入:
configName: 要覆寫的設定名稱
widgetConfig: 允許使用者以自訂Widget覆寫表單中的預設Widget。 設定會覆寫,如下所示:
formBridge.registerConfig("widgetConfig":{/*configuration*/})
pagingConfig: 允許使用者覆寫僅轉譯第一頁的預設行為。 設定會覆寫,如下所示:
window.formBridge.registerConfig("pagingConfig":{pagingDisabled: <true false="">,shrinkPageDisabled: <true false=""> })。
Loggingconfig: 允許使用者覆寫記錄層級、停用類別的記錄,或是否要顯示記錄主控台或傳送至伺服器。 設定可以覆寫,如下所示:
formBridge.registerConfig{
"LoggerConfig" : {
{
"on":`<true *| *false>`,
"category":`<array of categories>`,
"level":`<level of categories>`, "
type":`<"console"/"server"/"both">`
}
}
SubmitServiceProxyConfig: 允許使用者註冊提交和記錄器Proxy服務。
window.formBridge.registerConfig("submitServiceProxyConfig",
{
"submitServiceProxy" : "`<submitServiceProxy>`",
"logServiceProxy": "`<logServiceProxy>`",
"submitUrl" : "`<submitUrl>`"
});
設定: 設定的值
輸出: 包含中組態原始值的物件 資料 屬性。
錯誤: 無
hideFields(fieldArray) 隱藏fieldArray中提供Som運算式的欄位。 將指定欄位的presence屬性設定為隱藏
輸入:
輸出: 無
錯誤: 無
showFields(fieldArray) 顯示fieldArray中提供Som運算式的欄位。 將所提供欄位的presence屬性設定為可見
輸入:
輸出: 無
錯誤: 無
hideSubmitButton() 隱藏表單中的所有提交按鈕
getFormState() 傳回代表表單狀態的JSON
輸入: 無
輸出: 物件,內含代表下列專案之目前表單狀態的JSON: 資料 屬性。
錯誤: 無
restoreFormState(options) 從選項物件中提供的JSON狀態還原表單狀態。 狀態已套用,並在作業完成後呼叫成功或錯誤處理常式
輸入:
選項: 包含下列屬性的JavaScript物件:
輸出: 無
錯誤: 無
setFocus (som) 將焦點設定在Som運算式中指定的欄位
setFieldValue (som, value) 設定指定Som運算式的欄位值
輸入:
輸出: 無
錯誤: Som運算式不正確時擲回例外狀況
getFieldValue (som) 傳回指定Som運算式的欄位值
輸入: 包含必須擷取其值之欄位的Som運算式的陣列
輸出: 包含結果為Array的物件 資料 屬性。
錯誤: 無
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運算式中所指定欄位之指定屬性的值清單
輸入:
輸出: 包含結果為Array的物件 資料 屬性
錯誤: 無
setFieldProperties(som,屬性,值) 為Som運算式中指定的所有欄位設定指定屬性的值
輸入:
輸出: 無
錯誤: 無
// 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.
}