程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 使用 IntraWeb (9)

使用 IntraWeb (9)

編輯:Delphi


IW 依賴 js 構建(我數了數, 在當前版本它的資源文件默認攜帶了 26 個 js);

但 IW 盡可能地讓用戶少用或不用 js, 但如果你對 js 也不陌生, IW 提供了多種途徑與方便. 我給它分兩大類:

1、直接寫入 js 代碼(站點級、頁面級, 還可以精確地指定插入位置);

2、鏈接 *.js 文件(外鏈、內鏈, 還可以是資源文件).



首先應該說明: IW 已經霸占了 window.onload, 用戶在 js 中不能再使用 onload. 如果你有一個 js 文件或模板沒有如期運作, 或許是這個原因; 不過好像僅此一個, 剩下的都是方便了.

還有: 在 IW 中可以直接使用 jQuery, 當前版本攜帶的是: jQuery 1.8.2

1.1: 使用窗體的 AddToInitProc 插入初始化的 js 代碼
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
  AddToInitProc('alert("歡迎")');  //其中的 js 代碼最終會被 window.onload 調用
end;


1.2: 在控件的 ScriptEvents 屬性中添加 js 代碼
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
  IWButton1.ScriptEvents.Values['onclick'] := 'alert(this.name)';  //這裡的代碼都應該很簡單, 主要是函數調用
end;

{這在設計時更方便:}



1.3: 可以把 js 函數寫在窗體的 JavaScripts 屬性中
//如果不是使用 js 文件, 就應該把 js 函數都寫在 JavaScripts 屬性中
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
  JavaScript.Text := 'function MyFun1() {alert("TIWForm1.JavaScripts");}';
  IWButton1.ScriptEvents.Values['onclick'] := 'MyFun1()';
end;

{建議在設計時使用 JavaScripts 屬性}


1.4: 只執行一次的 js 代碼:
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
  JavaScriptOnce := 'alert("JavaScriptOnce")';
end;


1.5: 如果要進行精確的定位插入, 需要用到窗體的 PageContext 屬性
//PageContext 對象提供了更多插入方法, 下面幾個只是我找到執行順序的(下面次序就是我測試出的執行順序)
PageContext.JavaScript;
PageContext.AddToJavaScriptOnce();
PageContext.AddToOnReady();
PageContext.AddToInitProc();
PageContext.AddToIWCLInitProc();
PageContext.AddToInitProcPageUnlockCode();
PageContext.AddToInitProcFocusCode();
PageContext.AddToInitProcNewWindowCode();
PageContext.AddToInitProcDoLastCode();


2.1:
//未完待續


2.2:



2.3:



2.4:



2.5:



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved