您可以使用表單橋接器API,開啟XFA型HTML5表單與應用程式之間的通訊通道。 表單橋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() 檢查表單狀態是否已初始化
輸入:無
輸出: 若XFA表單狀態已初始化,則設為true
錯誤:無
connect(handler, context) 建立與FormBridge的連線,並在建立連線並初始化表單狀態後執行函式
輸入:
輸出:無
錯誤:無
getDataXML(options) 以XML格式傳回目前的表單資料
輸入:
選項: 包含下列屬性的JavaScript物件:
輸出: 無
錯誤: 無
registerConfig(configName, config) 使用FormBridge註冊使用者/入口專屬設定。這些設定會覆寫預設設定。 支援的設定會在設定區段中指定。
輸入:
configName: 要覆寫的設定名稱
widgetConfig: 允許使用者使用自訂介面工具集覆寫表單中的預設介面工具集。設定被覆寫如下:
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: 允許使用者註冊提交和記錄器代理服務。
window.formBridge.registerConfig("submitServiceProxyConfig",
{
"submitServiceProxy" : "`<submitServiceProxy>`",
"logServiceProxy": "`<logServiceProxy>`",
"submitUrl" : "`<submitUrl>`"
});
設定: 設定的值
輸出: 物件,包含dataproperty中設定的原始 ** 值。
錯誤: 無
hideFields(fieldArray) 隱藏其Som表達式在fieldArray中提供的欄位。將指定欄位的存在屬性設定為不可見
輸入:
輸出: 無
錯誤: 無
showFields(fieldArray) 顯示其Som表達式在fieldArray中提供的欄位。將提供欄位的presence屬性設定為可見
輸入:
輸出: 無
錯誤: 無
hideSubmitButtons() 隱藏表單中的所有提交按鈕
getFormState() 傳回代表表單狀態的JSON
輸入: 無
輸出: 物件,其中包含JSON,代表dataproperty中目前的表 ** 單狀態。
錯誤: 無
restoreFormState(options) 從options物件中提供的JSON狀態還原表單狀態。會套用狀態,並在操作完成後呼叫成功或錯誤處理常式
輸入:
選項: 包含下列屬性的JavaScript物件:
輸出: 無
錯誤: 無
setFocus(som) 將焦點置於Som運算式中指定的欄位
setFieldValue(som, value) 設定給定Som表達式的欄位值
輸入:
輸出: 無
錯誤: 若Som運算式不正確,則擲回例外
getFieldValue(som) 傳回指定Som運算式的欄位值
輸入: 陣列,包含必須擷取其值之欄位的某些運算式
輸出: 在dataproperty中包含結果為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,屬性) 檢索Som表達式中指定欄位的給定屬性的值清單
輸入:
輸出: 物件,其中包含*data *property中的結果為Array
錯誤: 無
setFieldProperties(som, property, values) 為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.
}