みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
御世話になって居ります。先程、「FM19のwebviewerのカスタム web アドレスの文法について」のタイトルで質問をさせて頂きましたが、これに関連して別途皆様に御教示頂きたい事が有ります。
webviewer内でjavascriptを使用したりcssを用いる場合、外部サイトからjsファイルやcssファイルを参照するには、
<script src="https://xxx/xxx/xxx.js"></script>
<link rel="stylesheet" href="https://xxx/xxx/xxx.css">
等を通常headに記載すると思います。
一方、インターネット接続がオフラインの場合にもwebviewer内でjsファイルやcssファイルを使用する一つの方法としては、jsファイルやcssファイルの内容をglobal fieldに入れておいて、webviewerから呼び出すのが一般的だと思います。例えばresourceと言う名称のテーブルを作成して、js1、css1などの名称のglobal fieldの中にxxx.jsやxxx.cssの中に記載されているテキストデータを格納し、webviewerからresource::js1やresource::css1などを参照する事になると思います。このwebviewerからresource::js1やresource::css1を呼び出す方法が良く分からないのですが、例えばjavascriptの場合であればwebviewerの計算式の中に
<script> resource::js1 </script>
等と書けば良いでしょうか(恐らく駄目だと思われますが)。Google検索を行いますと、
<script> **resource::js1** </script>
の様な記述が見られる様な気がしますが、アスタリスク(もしくは他の記号など)で囲う必要が有るでしょうか。変法としては、resource::js1などの内容をグローバル変数等に一旦格納して、webviewerからこれらグローバル変数等を呼び出している例も見当たる感じがしますが、webviewerからグローバル変数を呼び出す為の文法はどの様にしたら良いでしょうか($付与等?)。
散漫な文章で恐縮ですが御教示方頂けますと幸いです。どうぞ宜しく御願い致します。
Webビューアからフィールド値や変数値を「呼び出す」ことはできません。
計算式で参照して、あらかじめ連結した結果をWebビューアにURLとして渡すだけです。
「アスタリスク(もしくは他の記号など)で囲う」これは、単にSubstitute()でフィールド値などと置き換える場所のマークとして使用しているのでは?
FM19では、Javascript関数でFMのスクリプトを実行できるようになりました。スクリプトの結果としてフィールドや変数の値を受け取れると思いますが、多分今やりたいのはこれではないでしょう。
https://help.claris.com/ja/pro-help/con … ewers.html
ローカルでWEBビューアを利用する方法としては、計算式で色々組み込む方法と、テンポラリフォルダへhtmlファイルやjs・cssをエクスポートして利用する、または、両方組み合わせるなどの方法があります。
テンポラリフォルダへhtmlファイルやjs・cssをエクスポートして利用する方法は、
[No.38]MarkdownThing
https://www.fm-1gp.com/post/entryno38
↑で公開されている↓のスクリプトが参考になるかと思います。
スクリプト:Output_SourceCode
Offline
himadanee様、qb_dp様
コメント有難う御座います。
> Webビューアからフィールド値や変数値を「呼び出す」ことはできません。計算式で参照して、あらかじめ連結した結果をWebビューアにURLとして渡すだけです。
御教示有難う御座います。フィールド値や変数値を用いる為には計算式で参照して連結する必要が有ると言うのは確かに納得です。ただ、https://community.claris.com/en/s/question/0D50H00006h9Fs4/webviewer-htmlcssjquery-for-syntax-highlighting や https://www.soliantconsulting.com/blog/ … brary-2-2/ を見ますと、何らかの方法(<style> **CSS1** </style>など)でwebviewerからフィールド値を参照している様にも見えるので(全く私の勘違いかも知れませんが)、頭を悩ませています。
> ローカルでWEBビューアを利用する方法としては、計算式で色々組み込む方法と、テンポラリフォルダへhtmlファイルやjs・cssをエクスポートして利用する、または、両方組み合わせるなどの方法があります。
御教示有難う御座います。「テンポラリフォルダへhtmlファイルやjs、cssをエクスポートして利用する」については、もしフィールド内のjs、cssを計算式から使用するのが煩雑な場合、是非試してみたいと思います。有難う御座います。
何らかの方法(<style> **CSS1** </style>など)でwebviewerからフィールド値を参照している様にも見えるので(全く私の勘違いかも知れませんが)、頭を悩ませています。
**CSS1** を Substitute関数でフィールド値と置換しているのでしょう。
Offline
フィールドの値と直接結合したい場合は以下のようにします。
計算式で文字列の結合をするのと同じです。
".....<script>" & resource::js1 & "</script>....."
Offline
qb_dp様
度々御教示頂き大変有り難う御座います。
> **CSS1** を Substitute関数でフィールド値と置換しているのでしょう。
"data:text/html ... " の全体をSubstitute関数で処理すれば良い事を漸く理解しました。himadanee様の「これは、単にSubstitute()でフィールド値などと置き換える場所のマークとして使用しているのでは?」も同じ事を御指摘頂いていたのだと思います。すぐに気付かずに済みません。
> フィールドの値と直接結合したい場合は以下のようにします。計算式で文字列の結合をするのと同じです。".....<script>" & resource::js1 & "</script>....."
上記のSubstitute関数と是非併せて試してみたいと思います。有り難う御座います。
[ Generated in 0.009 seconds, 11 queries executed - Memory usage: 521.98 KiB (Peak: 526.88 KiB) ]