初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-02-19 16:20:38

wook
Member

WebViewerでのWebアドレス設定

FMP19.6 Win10です。

WebViewerのWebアドレス設定部分に
@ユーティリティ::html
とフィールドデータ値を指定した場合、ほぼほぼブラウザでの動作確認通りの表示が得られますが
一般的な書き方でWebアドレス部分に
"data:text/html,"& "
<!DOCTYPE html>
「同じコード」
"
とした場合に部分的に動作しない現象が有ります。
(表に表示するデータが出ない等)
「同じコード」部分は@ユーティリティ::htmlフィールドのhtmlソース中に書かれている内容の' " '部分を
エスケープしただけのコードで中身は同じです。

これはこういうものとして諦める(動くパターンを探る)しかないのでしょうか?
気を付ける事で現象を回避する可能性のある部分などは有りますでしょうか?

アドバイス宜しくお願いします

Offline

#2 2023-02-19 17:41:46

himadanee
Guest

Re: WebViewerでのWebアドレス設定

改行ができてないのでは。
""の中で改行しても半角スペースとみなされます。改行は
"¶"
です。

#3 2023-02-19 18:27:29

wook
Member

Re: WebViewerでのWebアドレス設定

himadanee wrote:

改行ができてないのでは。
""の中で改行しても半角スペースとみなされます。改行は
"¶"
です。

データはjsonなので中の改行有無は関係ない気がしますが・・

Offline

#4 2023-02-19 18:58:48

himadanee
Guest

Re: WebViewerでのWebアドレス設定

データじゃなく「同じコード」(HTML)ですよね。javascriptは改行が必要な書き方になってる場合もあります。

#5 2023-02-20 07:47:08

wook
Member

Re: WebViewerでのWebアドレス設定

himadanee wrote:

データじゃなく「同じコード」(HTML)ですよね。javascriptは改行が必要な書き方になってる場合もあります。

JSの//がWebviewer内で悪さするってのは有りましたね。(//後ろが改行にならずソースが連結されてしまう)
これ以外でも有りますか?

Offline

#6 2023-02-20 11:12:50

qb_dp
Member

Re: WebViewerでのWebアドレス設定

「WEBビューア」->「右クリック」->「開発者ツールで調査する」
コンソールでエラーを確認してみては。

Offline

#7 2023-02-20 12:35:52

wook
Member

Re: WebViewerでのWebアドレス設定

qb_dp wrote:

「WEBビューア」->「右クリック」->「開発者ツールで調査する」
コンソールでエラーを確認してみては。

直接書き込み版とhtmlフィールド参照版を並べてみているのですが
どちらもエラーは出ていないですが、直接版だとテーブルデータの内容が反映できていないようでテーブル部分のみ表示されません

Offline

#8 2023-02-20 13:42:57

qb_dp
Member

Re: WebViewerでのWebアドレス設定

wook wrote:

「同じコード」部分は@ユーティリティ::htmlフィールドのhtmlソース中に書かれている内容の' " '部分を
エスケープしただけのコードで中身は同じです。

テーブルデータの読み込み元がJSONなのでしょうか?
JSONのダブルクォーテーションのエスケープが、おかしいのでは?
JSONを出来るだけ単純にして確認してみるとか。

※ソース見ないでエラーを探るのは、難しい...

Offline

#9 2023-02-20 13:44:51

Moz
Member

Re: WebViewerでのWebアドレス設定

Webビューアで表示する以前に
直接版の計算結果とhtmlフィールドに入力している内容を比較してみては?
テーブルデータ(フィールド値)が反映できていないなら計算結果の時点で分かるでしょう。

Offline

#10 2023-02-20 15:35:33

wook
Member

Re: WebViewerでのWebアドレス設定

簡単な例で言うと
  <body>
    <!-- HTMLのテーブル定義 -->
    <table id="myTable">
      <thead>
        <tr>
          <th>Name</th>
          <th>Age</th>
          <th>Gender</th>
        </tr>
      </thead>
      <tbody>
      </tbody>
    </table>

    <script>
      /*/ json1の定義*/
      var json1 = [
        {"name": "Alice", "age": 20, "gender": "female"},
        {"name": "Bob", "age": 25, "gender": "male"},
        {"name": "Charlie", "age": 22, "gender": "male"}
      ];
      const json2 = JSON.stringify(json1);
      const json = JSON.parse(json2);

      /*/ テーブルのtbody要素を取得する*/
      var tableBody = document.querySelector('#myTable tbody');

      // json1の要素をテーブルに追加する
      json.forEach(function(item) {
        var row = document.createElement('tr');
        row.innerHTML = '<td>' + item.name + '</td><td>' + item.age + '</td><td>' + item.gender + '</td>';
        tableBody.appendChild(row);
      });
    </script>
を実行した時、直書きではテーブル内容が出ず、htmlフィールド参照では出ます
デバッグでごちゃごちゃやっていますがjson.forEachの部分をjson1.forEachにしても結果は同じです

Offline

#11 2023-02-20 15:51:37

qb_dp
Member

Re: WebViewerでのWebアドレス設定

あ~...
htmlをフィールドに入れている場合、クォーテーションのエスケープは不要です。

Offline

#12 2023-02-20 16:00:23

wook
Member

Re: WebViewerでのWebアドレス設定

qb_dp wrote:

あ~...
htmlをフィールドに入れている場合、クォーテーションのエスケープは不要です。

フィールドに入れる時はWebで動作確認しているHTMLをそのまま入れています。
おかしな場所の//さえやらなければ大抵ほぼそのまま動いています。
そのコードの”をエスケープ(全置換)した奴を直接書いています

Offline

#13 2023-02-20 16:04:33

himadanee
Guest

Re: WebViewerでのWebアドレス設定

>//さえやらなければ

やってますよね^^;

#14 2023-02-20 16:13:42

qb_dp
Member

Re: WebViewerでのWebアドレス設定

>そのコードの”をエスケープ(全置換)した奴
↑も不要です。

エスケープは不要なので、以下でOKです。

"data:text/html;charset=UTF-8," & htmlが入っているフィールド

※htmlがフィールドに入っている場合、// もそのままでOK。

Last edited by qb_dp (2023-02-20 16:15:29)

Offline

#15 2023-02-20 16:32:27

Moz
Member

Re: WebViewerでのWebアドレス設定

#14 で qb_dp さんが書いているような dataスキームと HTMLフィールド がメンテナンス性も高いのですが、
なぜ直接計算フィールドに入力してやりたいんでしょうか?

で、上でも書きましたが
HTMLフィールドにいれている内容と直接版の計算結果が異なっているのが原因ではないですかね。
※フィールドでは改行は改行になりますが、計算式では改行は改行になりませんし。

コードのどこかが間違ってるとかいう以前の話です。

Last edited by Moz (2023-02-20 16:33:45)

Offline

#16 2023-02-20 16:47:44

wook
Member

Re: WebViewerでのWebアドレス設定

Moz wrote:

なぜ直接計算フィールドに入力してやりたいんでしょうか?

何故か?問題はFilemaker Cloudでの互換性問題です。
FMP本体だけなら現状のhtmlフィールド入力パターンで全く問題が無いのですが、Filemaker Cloudで実行すると
htmlフィールド入力したWebViewerには何も表示されません。
(原因は良く分かりません)
なる早の解決策として直接入力でとりあえずやろうとしています。
FMP上で直接書いて表示できているとFilemaker Cloud上でも表示できています)

Offline

#17 2023-02-20 16:52:04

wook
Member

Re: WebViewerでのWebアドレス設定

一点、
先ほど例で示したコードについては例の//問題でした。失礼しました。
//を排除しても発生している問題は他の例でも有りますがちょっと大きいので貼れません

Offline

#18 2023-02-21 08:24:23

wook
Member

Re: WebViewerでのWebアドレス設定

himadanee wrote:

>//さえやらなければ

やってますよね^^;

サンプルコードに入ってました-_-;
自分では書かないんですけどね、失礼しました
基本的には直接書くHTMLは事前に//無いことを調べています。

Offline

#19 2023-02-21 08:26:53

wook
Member

Re: WebViewerでのWebアドレス設定

qb_dp wrote:

>そのコードの”をエスケープ(全置換)した奴
↑も不要です。

エスケープは不要なので、以下でOKです。

"data:text/html;charset=UTF-8," & htmlが入っているフィールド

※htmlがフィールドに入っている場合、// もそのままでOK。

HTML内の<head>で
    <meta charset='UTF-8' />
やっているので"data:text/html;charset=UTF-8,"のcharsetは不要と思うのですが如何ですか?

Offline

#20 2023-02-21 08:50:34

qb_dp
Member

Re: WebViewerでのWebアドレス設定

"data:text/html;charset=UTF-8,"のcharsetはdataスキーム側の明示的な指定です。省略可能ですが、あった方が安全かと。

Offline

#21 2023-02-21 09:38:56

himadanee
Guest

Re: WebViewerでのWebアドレス設定

クラウドだとフィールド値が使えないというのは、謎ですね。
HTMLを入れてるテーブルが、別のファイルってことはないですか?

#22 2023-02-21 17:08:36

wook
Member

Re: WebViewerでのWebアドレス設定

himadanee wrote:

クラウドだとフィールド値が使えないというのは、謎ですね。
HTMLを入れてるテーブルが、別のファイルってことはないですか?

今はテスト段階なので単一ファイルで使っていて、フィールドはグローバルフィールドです。
クラウドで出ないのはテーブルとか関係無くて何入れても出ないんですよね。
逆に出るサンプルって(簡単なのでいいので)有りませんでしょうか?

Offline

#23 2023-02-21 17:36:16

himadanee
Guest

Re: WebViewerでのWebアドレス設定

ちゃんとフィールド値が入ってますか?
グローバルでないフィールドでやってみては。
グローバルではコードを1つしか入れられないので、あんまり意味がないでしょう。コードを入れるたびにアップロードしなおさないといけないし...

クラウドは契約してないのでテストできません。

#24 2023-02-21 19:39:39

wook
Member

Re: WebViewerでのWebアドレス設定

himadanee wrote:

ちゃんとフィールド値が入ってますか?
グローバルでないフィールドでやってみては。
グローバルではコードを1つしか入れられないので、あんまり意味がないでしょう。コードを入れるたびにアップロードしなおさないといけないし...

クラウドは契約してないのでテストできません。

勘違いで、元々グローバル以外でやっていました。レコード数1です。
逆にグローバルでもやってみましたが結果は同じでした。謎です。
FMPでは問題なく動いています。
ちょっとClarisにも投げてみます

Offline

#25 2023-02-21 20:53:25

Moz
Member

Re: WebViewerでのWebアドレス設定

FileMaker Cloud で HTML フィールドから Webビューアに表示して問題なく動いていますよ。
どこか設定に問題があるように思いますけどネ。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 622.09 KiB (Peak: 638.63 KiB) ]