全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2117
推到 Plurk!
推到 Facebook!

webbrowser如何执行此情形的script?

答題得分者是:chris_shieh
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-22 09:44:36 IP:61.153.xxx.xxx 未訂閱
网页内有如下代码: 《script language="JavaScript" src="addbycompany.js"》《/script》 addbycompany.js内描述了add_by_company()函数。 webbrowser如何获得该函数并执行呢?
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-22 12:12:32 IP:61.63.xxx.xxx 未訂閱
uses ...MSHTML_TLB;    var
 Document:IHTMLDocument2;
begin
 Document:=webbrowser.Document as IHTMLDocument2;
 Document.parentWindow.execScript(add_by_company, '');
end;
@瞭解越多.懂得越少@
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-22 15:48:37 IP:61.153.xxx.xxx 未訂閱
uses ...MSHTML_TLB; 提示MSHTML_TLB.dcu找不到,请各位指点。
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-22 16:10:39 IP:61.63.xxx.xxx 未訂閱
這是Microsoft HTML Object Library 的 ActiveX Control 你必須import ActiveX Control 作法: 在Delphi IDE 中 上方 [Component] -> [Import ActiveX Control] 在項目中找Microsoft HTML Object Library "Unit Dir Name" 指定你要放這個Unit file 的目錄 按下 [Create Unit] 就會產生一個 MSHTML_TLB.pas在該目錄 記得在Tools / Environment options / Library / Library path 中 要加入你剛剛指定的那個目錄 如果不清楚 可以利用關鍵字 Import ActiveX Control 找找本站文章 @瞭解越多.懂得越少@
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-22 16:47:28 IP:61.153.xxx.xxx 未訂閱
没有效果,大概是我设计存在问题,现详细描述如下: select name="COMPANY_CODE" "change_type_name('Type_name','COMPANY_CODE')" option value="3COM" option value="ADC" option value="AIMS" 我使用以下代码实现 d := WebBrowser1.document as IHTMLDocument2; form := d.forms.item(varempty,01) as IHTMLFormElement; formelement:=form.Item ('COMPANY_CODE',0) as IHTMLElement; formelement.setAttribute('value','3COM',0); D.parentWindow.execScript(d, change_type_name('Type_name','COMPANY_CODE'),'JavaScript'); 执行结果是选择了"3COM",但是没有执行script。 请各位大大帮忙!
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-22 23:02:01 IP:61.63.xxx.xxx 未訂閱
要帶入實際值 D.parentWindow.execScript(d, change_type_name('value',3Com'),'JavaScript'); @瞭解越多.懂得越少@
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-23 08:39:39 IP:61.153.xxx.xxx 未訂閱
感觉不对,change_type_name描述如下: function change_type_name(target,option1) { var v1; v1=document.form1.COMPANY_CODE; getRemoteData_type_name("&" option1 "=" v1.options[v1.selectedIndex].value); clearSelect(eval("document.form1." target)); clearSelect(eval("document.form1.wangyuan")); clearSelect(eval("document.form1.danyuan")); clearSelect(eval("document.form1.en_name")); document.form1.cn_name.value = ""; fillSelect_type_name(eval("document.form1." target)); } function getRemoteData_type_name(option1) { var strA = ""; oReq = new ActiveXObject("Microsoft.XMLHTTP"); oReq.open("POST","../xml/xml_type_name_sn.jsp?" option1,false); oReq.setRequestHeader("Content-Length",strA.length); oReq.setRequestHeader("Content-type","application/x-www-form-urlencoded"); oReq.send(strA); } 其中Type_name是另外一个空间名称: select name="Type_name" "changeSelect('wangyuan','COMPANY_CODE','Type_name')" 从中,可以看到script函数之间多次调用? 不知道什么原因,就是无法得到想要的结果。
tzjwj
一般會員


發表:28
回覆:30
積分:11
註冊:2005-05-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-23 11:15:00 IP:61.153.xxx.xxx 未訂閱
对不起,自己程序设计中的其他地方存在问题导致。附加的判断条件错误导致跳过执行script。 chris_shieh大大说的是正确的。谢谢。
系統時間:2024-06-26 11:58:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!