このエントリーは「Delphi XE6のFireMonkeyモバイルアプリケーションでTWebBrowserのHTMLページにJavaScriptを実行する」をC++Builder XE6で書き直したものです。
C++Builder XE6のFireMonkeyモバイルアプリケーションで、TWebBrowserで表示しているHTMLページに対して、JavaScriptを実行する方法を紹介します。
今回作成するアプリケーションは、ボタン(TButton)を押すと、ブラウザ(TWebBrowser)に表示している文字を入力欄(TEdit)に入力した文字に書き換えます。
フォームにTWebBrowserとTEdit、TButtonを配置します。
フォームを作成するときに、サンプルのHTMLを表示します。
フォームのOnCreateイベントに次のコードを記述します。
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
const UnicodeString HTML = u"<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"utf-8\"></head><body><span id=\"test\">テスト</span></body></html>";
WebBrowser1->LoadFromStrings(HTML, "");
}
TWebBrowserのLoadFromStringsは、引数のHTML文字列をTWebBrowserのコンテンツとして表示します。
ボタンのOnClickイベントに次のコードを記述します。
void __fastcall TForm2::Button1Click(TObject *Sender)
{
const UnicodeString JavaScript = Format("document.getElementById('test').innerHTML = %s;",
ARRAYOFCONST((AnsiQuotedStr(Edit1->Text, '"'))));
WebBrowser1->EvaluateJavaScript(JavaScript);
}
TWebBrowserのEvaluateJavaScriptメソッドは、引数のJavaScriptを実行します。
上のコードでは、ボタンを押すとJavaScriptでHTMLを変更します。
アプリケーションを実行します。
入力欄に入力します。
ボタンを押すと、HTMLが更新されました。