|
でるもんた・いいじまです。
> マクロヘルプにはこのような例が書かれています。
> //例1
> browserpanecommand """
> {
> "target":"_common",
> "show":1,
> "uri":"https://hide.maruo.co.jp/",
> "place":"leftside",
> }
> """;
> endmacro;
>
> "https://hide.maruo.co.jp/" の部分に、URLが記憶されたパラメータを
> 指定するにはどうするのでしょうか?
まずは上記の例題の、 """ という表記の意味を理解する必要があります。
こんなマクロを実行してみてください。
message """
こんにちは。
こうやって、" を何度も使わずに、
\nなどの表記も使わずに、
長い文字列を、
簡潔に書くことができます。
""";
次に、browserpanecommand のパラメータの指定順は「順不同」です。
なので上記の例題は、たとえば
browserpanecommand """
{
"uri":"https://hide.maruo.co.jp/",
"target":"_common",
"show":1,
"place":"leftside",
}
""";
endmacro;
と書いてもいいわけです。ついでに言うとコンマの後の改行も不要で、
browserpanecommand """
{
"uri":"https://hide.maruo.co.jp/","target":"_common","show":1,"place":"l
eftside",
}
""";
endmacro;
でもかまいません。
さらにいうと、""" を使って書かなければいけない、という制約もないので、古典的
な表記法で
browserpanecommand "{\"uri\":\"https://hide.maruo.co.jp/\",\"target\":\"_com
mon\",\"show\":1,\"place\":\"leftside\",}";
endmacro;
と書いても動作自体は変わりません。
というわけで、パラメータを色々と変数で指定したい、でも最近のバージョンで追加
された新しい文法はよく分からない、という場合には、こんな書き方が順当だと思い
ます。
$s ="{";
$s = $s + sprintf("\"%s\":\"%s\",", "uri", $uri);
$s = $s + sprintf("\"%s\":\"%s\",", "target", $target);
$s = $s + sprintf("\"%s\":%d,", "show", #show); // ここだけ %d なので注意
$s = $s + sprintf("\"%s\":\"%s\",", "place", $place);
$s = $s + "}";
browserpanecommand $s;
endmacro;
|
|