みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お知恵をお貸しください。
よろしくお願いします。
環境:win10 FMpro14
フィールド内のテキストを同一フォーム内に設置したWEBビューア上で表示しているページのテキストボックスへ挿入したいと思っております。
挿入したいテキストは2種類あり、1つは半角英数字、もう1つは日本語での文章です。
javascript初心者でまだ全然理解出来ておりませんが、現在1つ目の半角英数字は過去のトピック等を参考に試行錯誤し何とか下記の方法で希望通りに動く様になりました。
"javascript:function x(){document.getElementById('半角英数字Id ').value=(escape('" & 半角英数字フィールド& "'));}x()"
しかし2つ目の日本語文章を同じ方法で挿入しようとすると文字化けを起こしてしまいます。
※2つ目のフィールドも半角英数字であれば問題なく動きます。
解決方法をご教授いただければ幸いです。
よろしくお願いいたします。
"javascript:function x(){document.getElementById('日本語Id ').value=decodeURI(escape('" & 日本語フィールド& "'));}x()"
Offline
Hiro様
>>"javascript:function x(){document.getElementById('日本語Id ').value=decodeURI(escape('" & 日本語フィールド& "'));}x()"
上記で試してみたところ、やはり文字化けしてしまいます。
例 日本語フィールド=あいうえお 上記javascript実行→日本語Id=ããããã
となります。
・'日本語Id 'は当然実際ページのシリアル(英数文字列)に入替えて試されていますよね?(否ならJS自体動作しないか!)
・Webビューアの設定で、 ☒ URLを自動的にエンコードする にチェックが入っていますか?
Offline
>Hiro様
ご指摘頂いた箇所は全て確認済みです。
また手動でコピペするだけですと文字化けは当然発生しません。
例えばですが、テキストフィールドから直接置き換えるのではなく、
一度FM上でクリップボードにコピーして、その後JSで指定Idにペーストするという方法はないのでしょうか?
> 日本語フィールド=あいうえお 上記javascript実行→日本語Id=ãããããã
こちらの検証でこの結果を得るのは、
"javascript:function x(){document.getElementById('日本語Id').value='" & 日本語フィールド& "';}x()"
URL自動エンコードで、JS側エンコード・デコード双方ナシのときだけです。
> 一度FM上でクリップボードにコピーして、その後JSで指定Idにペーストするという方法はないのでしょうか?
"javascript:function fnc(){var jp=window.clipboardData.getData('TEXT');document.getElementById('日本語Id').value=jp};fnc()"
Last edited by Hiro (2016-12-25 12:58:23)
Offline
Hiro様
>こちらの検証でこの結果を得るのは、
"javascript:function x(){document.getElementById('日本語Id').value='" & 日本語フィールド& "';}x()"
URL自動エンコードで、JS側エンコード・デコード双方ナシのときだけです。
私の知識不足でお手数をお掛けしたようで申し訳ないです。検証までしていただきありがとうございます。
>"javascript:function fnc(){var jp=window.clipboardData.getData('TEXT');document.getElementById('日本語Id').value=jp};fnc()"
このコピペの方法で取り敢えずは希望の形で動作してくれる様になりました。
本当にありがとうございました。
また不明点が出てきた際はご質問させていただくかもしれませんが、その際はよろしくお願いします。
補足ですが、コピペのJSはもっと短くも書けますネ。
(ペースト値を引数に式を起動)
> "javascript:function fnc(){var jp=window.clipboardData.getData('TEXT');document.getElementById('日本語Id').value=jp};fnc()"
↓
● "javascript:function f(pst){document.getElementById('指定Id').value=pst};f(clipboardData.getData('Text'))"
ついでに確認ですが、この一連スレッドの質問も回答もWindows環境が前提となったもので、Macには無効です。
Last edited by Hiro (2016-12-26 11:38:30)
Offline
Pages: 1
[ Generated in 0.008 seconds, 11 queries executed - Memory usage: 517.29 KiB (Peak: 521.83 KiB) ]