{"id":17918,"date":"2024-03-15T15:58:17","date_gmt":"2024-03-15T15:58:17","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/"},"modified":"2024-03-21T12:03:42","modified_gmt":"2024-03-21T12:03:42","slug":"how-can-delphi-call-js-methods-through-webbrowser","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/","title":{"rendered":"How can Delphi call JS methods through WebBrowser?"},"content":{"rendered":"<p>In Delphi, you can call JavaScript methods by using the Document property of WebBrowser. Here are the specific steps:<\/p>\n<ol>\n<li>Place a TWebBrowser control on a form in Delphi and make sure the SHDocVw unit has been imported.<\/li>\n<li>In events that require calling JavaScript methods, use the WebBrowser&#8217;s Document property to access the current webpage&#8217;s HTML document object. You can obtain the Document object using the following code:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">var<\/span>\r\n  Doc: OleVariant;\r\n<span class=\"hljs-keyword\">begin<\/span>\r\n  Doc := WebBrowser1.Document;\r\n<\/code><\/pre>\n<ol>\n<li>Once you have obtained the Document object, you can use the parentWindow property of the Document to access the global window object in JavaScript. You can obtain the window object using the following code:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">var<\/span>\r\n  Window: OleVariant;\r\n<span class=\"hljs-keyword\">begin<\/span>\r\n  Window := Doc.parentWindow;\r\n<\/code><\/pre>\n<ol>\n<li>By accessing the window object, you can now call JavaScript methods. Use the execScript method of the window object to execute JavaScript code. You can use the following code to call JavaScript methods:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>Window.execScript(<span class=\"hljs-string\">'JavaScript\u4ee3\u7801'<\/span>);\r\n<\/code><\/pre>\n<p>For example, to call a JavaScript method named &#8220;myFunction,&#8221; you can use the following code:<\/p>\n<pre class=\"post-pre\"><code>Window.execScript(<span class=\"hljs-string\">'myFunction();'<\/span>);\r\n<\/code><\/pre>\n<p>In summary, the complete code for invoking a JavaScript method is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">var<\/span>\r\n  Doc, Window: OleVariant;\r\n<span class=\"hljs-keyword\">begin<\/span>\r\n  Doc := WebBrowser1.Document;\r\n  Window := Doc.parentWindow;\r\n  Window.execScript(<span class=\"hljs-string\">'myFunction();'<\/span>);\r\n<span class=\"hljs-keyword\">end<\/span>;\r\n<\/code><\/pre>\n<p>The above are the basic steps for calling JavaScript methods in Delphi using the WebBrowser control. Please make necessary modifications and extensions based on your actual situation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Delphi, you can call JavaScript methods by using the Document property of WebBrowser. Here are the specific steps: Place a TWebBrowser control on a form in Delphi and make sure the SHDocVw unit has been imported. In events that require calling JavaScript methods, use the WebBrowser&#8217;s Document property to access the current webpage&#8217;s HTML [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-17918","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How can Delphi call JS methods through WebBrowser? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How can Delphi call JS methods through WebBrowser?\" \/>\n<meta property=\"og:description\" content=\"In Delphi, you can call JavaScript methods by using the Document property of WebBrowser. Here are the specific steps: Place a TWebBrowser control on a form in Delphi and make sure the SHDocVw unit has been imported. In events that require calling JavaScript methods, use the WebBrowser&#8217;s Document property to access the current webpage&#8217;s HTML [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T15:58:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T12:03:42+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"How can Delphi call JS methods through WebBrowser?\",\"datePublished\":\"2024-03-15T15:58:17+00:00\",\"dateModified\":\"2024-03-21T12:03:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/\"},\"wordCount\":199,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/\",\"name\":\"How can Delphi call JS methods through WebBrowser? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T15:58:17+00:00\",\"dateModified\":\"2024-03-21T12:03:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How can Delphi call JS methods through WebBrowser?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How can Delphi call JS methods through WebBrowser? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/","og_locale":"en_US","og_type":"article","og_title":"How can Delphi call JS methods through WebBrowser?","og_description":"In Delphi, you can call JavaScript methods by using the Document property of WebBrowser. Here are the specific steps: Place a TWebBrowser control on a form in Delphi and make sure the SHDocVw unit has been imported. In events that require calling JavaScript methods, use the WebBrowser&#8217;s Document property to access the current webpage&#8217;s HTML [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T15:58:17+00:00","article_modified_time":"2024-03-21T12:03:42+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"How can Delphi call JS methods through WebBrowser?","datePublished":"2024-03-15T15:58:17+00:00","dateModified":"2024-03-21T12:03:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/"},"wordCount":199,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/","url":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/","name":"How can Delphi call JS methods through WebBrowser? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T15:58:17+00:00","dateModified":"2024-03-21T12:03:42+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-can-delphi-call-js-methods-through-webbrowser\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How can Delphi call JS methods through WebBrowser?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=17918"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17918\/revisions"}],"predecessor-version":[{"id":51561,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/17918\/revisions\/51561"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=17918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=17918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=17918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}