4D v14.3Webエリアのプログラムによる管理 |
||
|
4D v14.3
Webエリアのプログラムによる管理
Webエリアのプログラムによる管理
このテーマのコマンドは、Webエリアタイプのフォームオブジェクトをプログラミングによって管理するために使用します。 WebエリアはあらゆるタイプのWebコンテンツを4D環境で表示します。静止画や動画を含むHTMLページ、ファイル、ピクチャ、Javascript、Flash、PDFそしてMS Officeドキュメント (MS OfficeがインストールされているWindowsのみ) などです。以下のピクチャはフォームに格納されているWebエリアで、HTMLページを表示しています。 Webエリアテーマのコマンドに加え、いくつかの標準アクションやフォームイベントを使用して、デベロッパはこれらのWebエリアの機能をコントロールすることができます。特定の変数を用いると、エリアと4D環境の間での情報交換が可能となります。つまり、これらのツールを利用すると、フォーム上にベーシックなWebブラウザを構築することができるのです。 Webエリアは、4Dフォームエディタのオブジェクトバーにあるプラグインエリア/サブフォームボタンに追加された新しい項目を使用して作成されています (詳細はデザインリファレンスマニュアルのWebエリアを参照してください) 。 他の動的なフォームオブジェクトのように、Webエリアはオブジェクト名とテキスト型の変数名を持ちます。これらはWebエリアをプログラミングによって処理する際に使用されます。 特にWebエリアに対してOBJECT SET VISIBLEコマンドとOBJECT MOVEコマンドを使用することができます。 注: Webエリアに割り当てられるテキスト変数は参照を格納していません。そのためメソッドの引数として渡すことはできません。例えばWebエリアにMyAreaという変数名が割り当てられているとき、以下のコードを使用することはできません。 Mymethod(MyArea) Mymethodコード WA REFRESH CURRENT URL($1) // 動作しない このタイプのプログラミングに対しては、ポインタを使用する必要があります。 Mymethod(->MyArea) Mymethodコード WA REFRESH CURRENT URL($1->) // 動作する 標準的なオブジェクト変数に加え (前述の項目を参照) 、指定された2つの変数が、自動的にそれぞれのWebエリアに割り当てられます。
これらの変数はそれぞれ、デフォルトでWebエリア_url と Webエリア_progressという名前が付けられます。必要であれば、これらの名前を変更することも可能です。これらの変数はプロパティリストからアクセスできます。 URL変数は文字列タイプです。この変数にはWeb エリアにロードされたURL またはロード中のURL が格納されます。 変数とWeb エリア間の連携は双方向で行われます。
URL 変数とWA OPEN URL コマンド URL 変数はWA OPEN URLコマンドと同じ効果をもたらします。しかしながら以下の違いに注意してください。
進捗変数は倍長整数タイプです。この変数には0 から100 までの値が格納され、この数値はWeb エリアに表示されるページのロードされたパーセンテージを表します。 Webエリアで実行されるJavaScripeコードから4Dメソッドを呼び出して、戻り値を取得することができます。 重要: この機能はWebエリアがレンダリングエンジンとして統合されたWeb Kitを使用している場合に限り、使用可能です。 4DメソッドをWebエリアから呼び出せるようにするためには、エリアのプロパティリスト内の、4Dメソッドコールを許可のオプションにチェックをする必要があります:
注: このオプションは、統合されたWeb Kitを使用のオプションにチェックをしている場合のみ有効です。 このプロパティがチェックされている場合、特別なJavaScriptオブジェクト($4d)がWebエリア内に表示され、これを使用して4Dプロジェクトメソッドの呼び出しを管理することが出来るようになります。 4Dメソッドコールを許可のオプションにチェックがされている場合、4Dの統合Web Kitは、"."オブジェクト記法を使用することによって4Dプロジェクトメソッドと使用できる$4dというJavaScriptオブジェクトをエリアに提供します。 例えば、HelloWorldという4Dメソッドを呼び出す場合には、以下の宣言を実行するだけです: $4d.HelloWorld(); 警告: JavaScriptは大文字小文字を区別するので、この場合、オブジェクトの名前は$4d (dは小文字)であることに注意して下さい。 4Dメソッドへの呼び出しのシンタックスは以下の様になります: $4d.4DMethodName(param1,paramN,function(result,error){})
today という名の4Dプロジェクトメソッドがあり、そのメソッドは引数を受け付けず、カレントの日付を文字列として返す場合について考えてみます。 today メソッドの4D コードは以下の様になります: C_TEXT($0) Webエリアでは、 4D メソッドは以下のシンタックスで呼び出し可能です: $4d.today() この4Dメソッドは引数を何も受け取りませんが、$0の値を、4Dによって呼び出されたコールバック関数へとメソッドの実行後に返します。 HTMLページのコードは以下の様になります: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> $4d.today(function(dollarZero) { var curDate = dollarZero; document.getElementById("mydiv").innerHTML=curDate; }); </script> </head> <body>Today is: <div id="mydiv"></div> </body> </html> calcSum という4Dプロジェクトメソッドがあり、そのメソッドが($1...$n)という引数を受け取り、その合計を$0に返すという場合について考えます: calcSum メソッドの4D コードは以下の様になります: C_REAL(${1}) // n個の実数型の引数を受け取ります。 Web エリア内で実行されるJavaScriptコードは以下の様になります: $4d.calcSum(33, 45, 75, 102.5, 7, function(dollarZero) { var result = dollarZero // result is 262.5 }); ここでは、例2で登場した calcSum メソッドに、エラーハンドラーを追加したものを使用する場合を考えます: $4d.calcSum("alpha", 45, 75, 102.5, 7, function(result, error) { if (error != null) alert( "got error: " + error[0].message); else alert( "got result: " + result); }); 特定のフォームイベントは、Webエリアをプログラミングで管理するこを目的としています。すなわち、リンクの起動に関連しています:
更に、Webエリアは以下の汎用フォームイベントをサポートしています:
これらのイベントに関する詳細は、Form event コマンドの記述を参照してください。 4D v14では、フォームの Web エリア内で Web インスペクターを見たり使用したりすることが出来るようになりました。Web インスペクターは統合されたWeb Kitデバッガーであり、Webページの情報の、コードとフローを解析します。この Web インスペクターはChromeのブラウザに含まれているものと基本的に同じものです Web エリア内でWebインスペクターを表示させるためには、以下の手順に従ってください:
上記の手順を踏んで設定を完了すると、エリア内でコンテキストメニューを開くと要素の詳細を表示という新しいオプションが追加されているはずです: このオプションを選択すると、Webエリアは二つに分割され、Webインスペクターは下側のパネル内に表示されます: また、インスペクターは別のウィンドとして表示して使用することもできます。エリアの左下にある。"Undock in separate windows" ボタンをクリックして下さい: Web インスペクターは、Web Kit レンダリングエンジンに含まれています。このデバッガーの機能の詳細に関しては、以下のアドレスにてGoogleより提供されているドキュメントを参照して下さい: https://developers.google.com/chrome-developer-tools/docs/scripts フォームが実行されると、他のフォームエリアと対話することを可能にする、標準のブラウザインタフェース機能がWeb エリア中で利用可能になります。
Windows では、Web エリアを使用して、Microsoft Office ドキュメントを表示したり、編集したりできます (Microsoft Office がマシンにインストールされている場合)。特にWord、Excel、PowerPoint ドキュメントなど (.doc、.xls、.ppt などの拡張子) を処理できます。MS Office XMLフォーマットもサポートされています。 Note: MS Office 2007 はデフォルトでWeb ブラウザでのドキュメントの表示を許可していません。ドキュメントは常に新規ウィンドウに表示されます。以下のアドレスで説明されている方法で、この動作を変更できます。 Windows では、Web エリアから、同じ4D アプリケーションで起動されているWeb サーバへのアクセスはお勧めできません。これを行うとコンフリクトが発生し、アプリケーションがフリーズすることがあります。もちろん他の4D から4D Server のWeb エリアにアクセスすることはできます。自身のWeb サーバにアクセスできないということです。 Mac OS 上のWeb エリアで、プログラムにより処理されるURL はプロトコルで開始されていなければなりません。つまり"www.mysite.com" ではなく"http://www.mysite.com" 文字列を渡さなければならないということです。 |
プロパティ
プロダクト: 4D ARTICLE USAGE
ランゲージリファレンス ( 4D v14.3) Inherited from :
Webエリアのプログラムによる管理 ( 4D v13.5) |