程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 2015.2.16 關於delphi web控件打開新網頁時彈出關閉頁面(js代碼)出錯的解決辦法研究,2015.2.16關閉頁面

2015.2.16 關於delphi web控件打開新網頁時彈出關閉頁面(js代碼)出錯的解決辦法研究,2015.2.16關閉頁面

編輯:Delphi

2015.2.16 關於delphi web控件打開新網頁時彈出關閉頁面(js代碼)出錯的解決辦法研究,2015.2.16關閉頁面


參考網址1:http://www.csharpwin.com/csharpspace/2360.shtml
...參考網址2:http://www.oschina.net/question/234345_53939
網址1、2都是c語言中對於web控件的解決辦法,對於兩者我都只是借鑒了一下方法,最終都只是對網頁中js代碼中的widow.open和window.close進行處理。
大概有兩種方法:
一種對js代碼進行替換,換成web控件可執行不出錯的程序,
另一種是對於web控件在執行js代碼widow.open後,進行事件判定....
下面最終我采用第二種方法對其進行解決,但是我這裡只對window.open進行處理,並沒有對window.close進行處理,後面如果有機會會對程序進行進一步的完善....
最終參考網址:http://www.360doc.com/content/12/1109/11/7389824_246775000.shtml

解決辦法的程序:
procedure TForm1.WebBrowserNewWindow2(Sender: TObject;

  var ppDisp: IDispatch; var Cancel: WordBool); begin   WebBrowser.RegisterAsBrowser := true;//當前浏覽器為最高級別浏覽器   ppDisp := WebBrowser.ControlInterface;//新窗口對象允許web浏覽器操作 end;

程序說明:
首先選建立一個web控件,然後使用web控件的onnewwindow事件,再將web控件的RegisterAsBrowser 屬性設為真,使得事件的ppDisp參數等於web控件ControlInterface屬性。
onnewwindow事件是響應一個導航到新網址或一個腳本的window.open方法;

ppDisp為程序創建新窗口的對象;

RegisterAsBrowser屬性
設置該屬性為True時,當前使用的Web浏覽器組件成為最高級別浏覽器。
語法:
property RegisterAsBrowser: WordBool;
 
ControlInterface屬性
訪問WebBrowser組件接口,這個接口允許一個Automation控制器訪問Web浏覽器的屬性、方法和事件。
語法:
property ControlInterface: IWebBrowser2;
示例:
顯示WebBrowser1組件的名稱,代碼如下:
Showmessage(WebBrowser1.ControlInterface.Name);    qq:673890989歡迎遇到同樣問題的伙伴們交流

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