読者です 読者をやめる 読者になる 読者になる

Xojo日本語ブログ

マルチプラットフォーム対応アプリが開発できるXojoのブログです。

HTMLViewerで表示されているURLを取得する

Tips HTMLViewer JavaScript

HTMLViewerはHTMLコンテンツを簡単に表示できる便利なライブラリなのですが、その中でブラウジングしていたり、リダイレクトしたりすると表示されているURLが分からなくなります。

HTMLViewerのプロパティにURLがあれば良いのですが、それもないのでURLを使って何か処理をしたいときに不便です。

そこで使ってみたいのが ExecuteJavaScript です。

htmlViewerの DocumentComplete イベントを使います。

Self.htmlView.ExecuteJavaScript("document.title='zurl '+document.URL;")

ここではzurlとなっていますが実際には何でも大丈夫です。こうするとHTMLのtitleタグの内容が zurl http://(表示されているURL) になります。

次に TitleChanged イベントを追加します。

if instr(newTitle,"zurl")>0 then
  dim myURL() as string = split(newTitle, "zurl")
  // myURL(1)が表示されているURL
end if

このようにタイトルを使って情報を受け渡すのが良いようです。


意外とこの方法は便利で、JavaScriptを使って任意の情報を取得し、それをXojoのプログラムに渡せるようになります。活用できるポイントとして、スクレイピング的な利用も考えられるでしょう。HTTPSocketやHTTPSecureSocketではJavaScriptを動かせませんが、HTMLViewerであれば可能です。JavaScriptで情報を取りだしてXojoで使うといった利用ができるでしょう。

via Getting correct URL for HTMLViewer - Xojo Forum