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

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

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

You are not logged in.

Announcement

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


#1 2018-02-15 23:25:57

asnmch
Member

HTML内のjavascriptからFilemakerのスクリプトを実行したい

環境はWindows7、FMpro Advanced13.0v5です。

ウェブビューワー内のjavascriptを使ってスクリプト「WantToDo」を実行したいと思っています。
ウェブビューワー内に直接 (<script></script>で囲まれた領域内に)
  theURL = \"fmp://$\/" & Get ( ファイル名 ) & "\?script=WantToDo;
  window.location = theURL ;
と書けば実行されます。

今回、HTML全体がウェブビューワーの制限文字数以上になるため、(また長くてバックスラッシュを入れるのが面倒なので、)フィールド「forHTML」を作ってそこにHTMLを書き込み、
"data:text/html," & ファイル名::forHTML
としています。
そして、フィールド「forHTML」内には上記と同じように
  theURL = "fmp://$/" & Get ( ファイル名 ) & "?script=WantToDo;
  window.location = theURL ;
書き込みましたが、スクリプトが実行されません。(「\"」は消しました。)
フィールド内に記入したHTML内のjavascriptから、スクリプトを実行するにはどうしたらよいでしょうか?

Offline

#2 2018-02-16 00:27:08

Hiro
Member

Re: HTML内のjavascriptからFilemakerのスクリプトを実行したい

テキスト内の式は実行されませんよ!

・theURL = "fmp://$/" & Get ( ファイル名 ) & "?script=WantToDo;
   ↓
・var theURL = 'fmp://$/<<ファイル名>>?script=WantToDo';
に換えて
・"data:text/html," & Substitute(ファイル名::forHTML; ["<<ファイル名>>"; Get(ファイル名)])
で実行とか、

Offline

#3 2018-02-16 01:01:21

asnmch
Member

Re: HTML内のjavascriptからFilemakerのスクリプトを実行したい

Hiro様
早速のアドバイスありがとうございました。迅速な対応に感謝いたします。
確かに、テキスト内の式は実行されないことに気付いていませんでした。
ただ、ご指摘のようにやってみましたが、スクリプトが実行されません。
実は試行錯誤の過程で、
var theURL = 'fmp://$/fileName.fmp12?script=WantToDo';
(fileNameは実際の当該ファイルの名称です)
ともしてみたのですが、うまくいきませんでした。
何か考えられる原因はありますか?

Offline

#4 2018-02-16 01:32:55

Hiro
Member

Re: HTML内のjavascriptからFilemakerのスクリプトを実行したい

WinのWebビューアは、JavaScript:スキームが通るから、
次のURLで直打ちテストしてみるとか、
javascript:theURL='fmp://$/fileName.fmp12?script=WantToDo';location.href=theURL ;

...とここまで書いて、ハタと気が付きましたが、
・window.location = theURL ;
   ↓
・location.href=theURL;
href が抜けているからでは?

Offline

#5 2018-02-16 01:55:00

asnmch
Member

Re: HTML内のjavascriptからFilemakerのスクリプトを実行したい

location.href=theURL;
もやってみたのですが、うまくいきません。
「次のURLで直打ちテストしてみる」
というのは、ウェブビューワーに直接書いてみるという意味でしょうか?

ところで、「WinのWebビューアは、JavaScript:スキームが通るから」とありますが
うまくいったら、このファイルをサーバーで共有ファイルとして、FileMakerGoで使えるようにしたいと思っているのですが、
仮に現在やろうとしていることがWin上でうまくいったとしても、FileMakerGoではできないということでしょうか?
(それなら無理して頑張らないで、スクリプト実行ボタンを作って逃げようかと思います)

Offline

#6 2018-02-16 02:12:48

Hiro
Member

Re: HTML内のjavascriptからFilemakerのスクリプトを実行したい

JS直打ちテストは、JSの記述内容が正しいかの動作実験です。
試行だけですから、とにかくテストしてみてください。

それもダメで、それ以外だと、「$」のURLエスケープ処理かな?

Offline

#7 2018-02-16 09:12:10

qb_dp
Member

Re: HTML内のjavascriptからFilemakerのスクリプトを実行したい

計算式で作成されたコードを確認してみては。
以下のようになっていれば、動作します。

data:text/html,<script>
theURL = "fmp://$/fileName.fmp12?script=WantToDo";
location.href= theURL ;
</script>

Last edited by qb_dp (2018-02-16 09:12:46)

Offline

#8 2018-02-17 23:22:00

asnmch
Member

Re: HTML内のjavascriptからFilemakerのスクリプトを実行したい

Hiro様、qb_dp様
アドバイスありがとうございました。
テスト用にFMpro Advanced13.0v5で新しいファイルを作って、教えていただいたようにやってみたらうまくいきました。
で、作成中のファイルでやってみたらやはりうまくいきません。
よくよく考えてみたら、正確に伝えていなかった情報がありました。
作成中のファイルは、FMServer13でホストされているファイルでした。
そこで、
theURL = "fmp://$/fileName.fmp12?script=WantToDo";
の$ところを
theURL = "fmp://192.168.2.100/fileName.fmp12?script=WantToDo";
というように、IPアドレスに変えてみたら、「最終的に」うまくいきました。
(最終的にというのは、実は、将来のアップバージョンのテスト用に同じPC(サーバーでもあります)にFMpro Advanced16もインストールされていたので、ここでもつまづきました。これをアンインストールして、さらにFMpro Advanced13.0v5を修正インストールしてみたら、うまくいきました。)
伝える情報不足でお手を煩わせてしまい申し訳ありませんでした。
迅速にアドバイスいただき、心から感謝します。
(PCを触れる環境から遠ざかっていたため、投稿が遅くなり大変失礼しました。)

Offline

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: 517.19 KiB (Peak: 521.73 KiB) ]