基本的には URL を指定するが、下記の様な感じで HTML 自体を書くことも可能。
"data:text/html,
<html>
・
・
・
・
</html>"
全体を "
(ダブルクォーテーション)で囲う必要があるので、html 内で "
は使えないので、'
(シングルクオーテーション)で置き換えるなどの対応が必要。
要は、データ URI スキームなので、メモ帳とかも埋め込める。
"data:text/html, <html contenteditable>"
なので、画像もいけるっぽい。
"data:image/png;base64,エンコードした文字列"
Java Script
Java Script も動くが、script タグの中の改行が除去されてしまうので、 //
を使ってコメントアウトしようとすると意図しない挙動になるので注意。
例えば、下記の様なソースを指定したとすると、 alt
関数は動きますが modify
関数は動きません。
<html>
<head>
<script type='text/javascript'>
function alt(){
window.alert('!!!!!');
}
// Before to After
function modify() {
document.getElementById('test').textContent = 'After';
}
</script>
<title>JSテスト</title>
</head>
<body>
<button onclick='alt()'>!</button><br>
<button onclick='modify()'>modify</button>
<p id='test'>
Before
</p>
</body>
</html>
FileMaker クライアントで見ててもよく分からないのですが、WebDirect 使って Chrome とかのデベロッパーツールを使うと下記の様な感じになってることがわかります。
// Before to After
から変なことになってますが、そもそも script タグ内の改行が全部無くなってる様に見えます。
結果として、下記の様な感じで途中からコメントアウトされてしまい、 modify
関数が定義されてない状態になるわけです。
<script type="text/javascript">
function alt(){ window.alert('!!!!!'); } // Before to After function modify() { document.getElementById('test').textContent = 'After'; }
</script>
と言うことで、script タグ内でコメント書きたい場合には、ブロックコメントを使うしかなさそうです。
<script type='text/javascript'>
function alt(){
window.alert('!!!!!');
}
/* Before to After */
function modify() {
document.getElementById('test').textContent = 'After';
}
</script>
これなら、改行がなくなっても大丈夫。
ちなみに、この挙動は 「Web ビューアの設定 > Web アドレス」 で指定した場合は発生せず、「指定」から「計算式の指定」で設定した場合のみ発生する模様。
が、
こっちで指定すると入力された内容から改行が取り除かれる。(スペースに置換される?)
どちらにせよ、HTML はテキストエディタなどから貼り付けるケースが大半だと思うので、「計算式の指定」ではなく「Web アドレス」に貼り付けた方が良さそう。
どうしても「計算式の指定」で設定したい場合には、¶
を行末に入れれば改行される。
めんどいのでテキストエディタの行末置換で ¶
を入れるとかでも良いかも。