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

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

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

You are not logged in.

Announcement

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


#1 2015-01-29 11:17:35

barikan
Guest

fmpプロトコルの引数が変わる

いつもお世話になっております。


fmpプロトコルを使ってパラメータを渡したいのですが、

スクリプトステップのURLを開くで

fmp://$/ファイル名?script=test&param=%E3%81%82
( GetAsURLEncoded ( "あ" ) → Get%E3%81%82 )

と指定すると引数が「あ」になりますが、WebViewerから

location.href = 'fmp://$/ファイル名?script=test&param=%E3%81%82';

とすると引数が別の文字になってしまいます。


どちらからでも同じように引数を渡すにはどのようにしたら良いでしょうか。

宜しくお願いします。


FMPA13 Win7

#2 2015-01-29 17:21:56

とおりすがり
Guest

Re: fmpプロトコルの引数が変わる

jabascript内で、fmp://を書く時は
location.href = 'fmp://$/ファイル名?script=test&param='+ encodeURIComponent( 'あ' );
と、javascritのエンコード関数使うのが楽ですよ。

#3 2015-01-29 19:04:58

barikan
Guest

Re: fmpプロトコルの引数が変わる

ありがとうございます。

試してみましたが、文字化けしてしまいました。

#4 2015-01-30 08:47:19

とおりすがり
Guest

Re: fmpプロトコルの引数が変わる

Web ビューアの設定で URL を自動的にエンコードのチェックは入っていますか?

#5 2015-01-30 09:13:43

barikan
Guest

Re: fmpプロトコルの引数が変わる

チェックがあってもなくても同じ結果でした。

いくつかのブラウザで試してみると

chrome、firefox: 文字化けしない
ie、webビューア: 文字化けする

となりました。

ということはieの問題?

#6 2015-01-30 10:53:22

とおりすがり
Guest

Re: fmpプロトコルの引数が変わる

あと考えられるのが、location.href で飛ばすURLの文字列の長さ。
これが、2000文字だか(細かい数字は失念)を超えるとIEは処理できません。

#7 2015-02-02 10:03:57

barikan
Guest

Re: fmpプロトコルの引数が変わる

location.href = 'fmp://$/ファイル名?script=test&param=%E3%81%82';
なので文字数は問題無いと思います。
ちなみにiOSだと上手くいきました。

#8 2015-02-02 13:29:24

Hiro
Member

Re: fmpプロトコルの引数が変わる

あえてJSリダイレクトを通さず、目的URLを直接Webビューアで開くとどうなりますか?

JS前提だと、別案に、可能性だけですが、
・DATA:スキームを介して、目的リダイレクトhref送信とか、
・だめなら、それに加え、引数をあえて<TextArea>に入れておき、上のリダイレクトhref送信とか、
・目先を変えて、HTAを介する方法など。

Offline

#9 2015-02-02 15:12:21

barikan
Guest

Re: fmpプロトコルの引数が変わる

Webビューアをカスタム Web アドレスにして直接
"fmp://$/ファイル名?script=test&param=%E3%81%82"
を指定すると文字化けしませんでした。

しかし、Webビューア内のフォームに入力された値をFMに戻すのが目的なので
このままではダメですね…。

もう少し詳しく書くと
fmp://$/ファイル名?script=test&$value1=foo&$value2=bar
の形式で複数の値を返したいのですが、
ここで「&や=」等が入ってくると正常に動作しなくなります。

そこで値をURLエンコードしてもProのWebビューアでは
文字化けしてしまうというのが今回困っているところです。

JS前提だと、別案に、可能性だけですが、
・DATA:スキームを介して、目的リダイレクトhref送信とか、
・だめなら、それに加え、引数をあえて<TextArea>に入れておき、上のリダイレクトhref送信とか、
・目先を変えて、HTAを介する方法など。

すみませんが、この部分に関してもう少し具体的な説明をお願いしても宜しいでしょうか。

#10 2015-02-02 15:33:43

Hiro
Member

Re: fmpプロトコルの引数が変わる

> Webビューア内のフォームに入力された値をFMに戻すのが目的なので
あぁ、その目的で日本語の戻り値を扱いたいなら、windows環境はMS JScriptのクリップボード関数渡しが楽です。

Offline

#11 2015-02-03 17:30:45

scripter
Guest

Re: fmpプロトコルの引数が変わる

IEの場合の処理の違いが書いてありました。
https://msdn.microsoft.com/en-us/librar … px#url_inv

Internet Explorer will decode all percent-encoded octets in the URI before passing the resulting string to ShellExecute

#12 2015-02-04 14:00:31

scripter
Guest

Re: fmpプロトコルの引数が変わる

とりあえず、encodeURIComponent()を2回実行すれば通るみたいですが、

Double percent-encoding is not a good solution either; if the application protocol URI isn't processed by Internet Explorer, it will not be decoded.

と書いてある通り、Windows以外では使えなくなる。

1回encodeした後は%だけ%25に置換、でもいいのかな。

#13 2015-02-04 14:46:47

barikan
Guest

Re: fmpプロトコルの引数が変わる

encodeURIComponent()を2回実行すれば通るみたいですが、

これが簡単そうなので、とりあえずIEだけ2回実行することで対応しようと思います。

> Webビューア内のフォームに入力された値をFMに戻すのが目的なので
あぁ、その目的で日本語の戻り値を扱いたいなら、windows環境はMS JScriptのクリップボード関数渡しが楽です。

そんな方法があったとは。場合によってはこちらも使っていきたいと思います。


ありがとうございました!

#14 2015-02-04 15:44:49

scripter
Guest

Re: fmpプロトコルの引数が変わる

同じようなのが、去年もあった^^;
https://fm-aid.com/bbs2/viewtopic.php?pid=8152#p8152
理由ははっきりしました。

MSのリンク先に書いてあるように、Base64でエンコードして、受け取ったFMのスクリプトでデコードすればいいんでしょうけど、
FMに標準でついてない関数では面倒ですよね。

#15 2015-02-04 16:10:21

barikan
Guest

Re: fmpプロトコルの引数が変わる

[前回]
・formとsubmitだけで連携したいけど文字化けする時がある
・javascriptでlocation.hrefなら文字化けしない

[今回]
・location.hrefの場合でも入力内容に「=、&」等の文字が入ると正常に動作しない
・そこでパラメータをurlencodeするとなぜかProでは文字化けする

ということでした。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 532.37 KiB (Peak: 553.27 KiB) ]