TCppWebBrowser의 ReadyState와 OnDocumentComplete 도움말을 참고하세요.
CppWebBrowser->Navigate 함수는 url에 지정된 호스트에 지정된 html 문서를 요청만하고 바로 return하는 함수입니다.
이 게시판에서 찾아보시면 관련 질의응답이 있습니다.
땅주인 님이 쓰신 글 :
:
: void __fastcall TForm2::ButtonTrackPathClick(TObject *Sender)
: {
: Variant doc;
: Variant r;
: Variant w;
:
: CppWebBrowser->Navigate(WideString("D:\\DLTS2010\\Test\\MapTest\\index9.html").c_bstr());
:
: doc = CppWebBrowser->Document;
: w = doc.OlePropertyGet("parentWindow");
:
: w.OleFunction("AddTrackCoordinate",37.414655,127.140197); // 알수 없는 이름입니다.
: w.OleFunction("AddTrackCoordinate",37.414645,127.140138);
: w.OleFunction("AddTrackCoordinate",37.415498,127.137457);
: w.OleFunction("AddTrackCoordinate",37.416053,127.136530);
: w.OleFunction("AddTrackCoordinate",37.416955,127.133397);
: ....
: }
:
:
: Navigate()로 페이지 여는 루틴과,
: Javascript호출하는 부분을 두 개의 Event(Button으로 처리)으로 분리하면 정상동작하는데..
: 하나의 함수 안에 넣으면 위와 같이 "알수 없는 이름입니다"라는 메세지가 나오는데..
: 이건 어떻게 해야 하는 지? Page Load하는 속도가 느려서 그런 것 같기도 하고..
:
: 도와주세요. 감사합니다.
:
:
: 이현수 님이 쓰신 글 :
: : Variant::OleFunction은 매개변수 갯수에 따라 32개가 있는데요
: : 매개변수 지정에 있어서 핵심은, 첫번째에는 함수이름문자열, 두번째부터는 함수이름문자열이 뜻하는 함수에 필요한 매개변수들을 차례대로 지정합니다.
: : 예를 들어, int Func1(int a, int b);를 호출하려면
: : int res = aVariantObject.OleFunction("Func1",5,7); 형식으로 해야 합니다.
: : 그러므로 질문 하신 내용의 경우 형식상으로는,
: : w.OleFunction("AddTrackCoordinate",37.414655,127.140197); 로 해야 하겠지요.
: :
: : 땅주인 님이 쓰신 글 :
: : : 팁&트릭란에 Builder에서 Web Page의 Javascript호출하는 방법이 나와 있던데..
: : : 그대로 해보니..잘 안되는데요.. 뭘 잘못했는 지... 감이 안 와서요..
: : :
: : :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=890
: : :
: : : Javascript 코드는 아래와 같고,.. 정상적으로 동작하는 것을 모두 확인한 상태입니다.
: : :
: : : function AddTrackCoordinate(x,y)
: : : {
: : : TrackCoordinates[CoordinateIndex] = new google.maps.LatLng(x,y);
: : : CoordinateIndex = CoordinateIndex + 1;
: : : }
: : :
: : : function ShowTrackPath()
: : : {
: : : TrackPath = new google.maps.Polyline({
: : : path: TrackCoordinates,
: : : strokeColor: "#FF0000",
: : : strokeOpacity: 1.0,
: : : strokeWeight: 3
: : : });
: : : TrackPath.setMap(Map);
: : : }
: : :
: : :
: : : 호출은 아래와 같이 했습니다.
: : :
: : :
: : : Variant doc;
: : : Variant r;
: : : Variant w;
: : :
: : : doc = CppWebBrowser->Document;
: : : w = doc.OlePropertyGet("parentWindow");
: : :
: : : w.OleFunction("AddTrackCoordinate(37.414655,127.140197)"); // error: 알수없는 이름입니다
: : : w.OleFunction("AddTrackCoordinate(37.414645,127.140138)");
: : : ...
: : :
: : :
: : : 에러 메세지는 "알수없는 이름입니다" 자바스크립트 함수 이름을 못 찾는 것 같은데..
: : : 어떻게 해야 할 지.... ?
: : : 고수님들의 도움이 필요합니다.
: : :
: : : 목적은, google map의 javascript API를 이용하여 차량의 GPS 데이터를 기반으로
: : : 운행 괘적을 표시하려 합니다.
: : :
: : : 감사합니다.