コードが機能するはずです。
これは、私のために働いているあなたに似た別の例です。
ruleset a60x535 {
meta {
name "function-scope-test"
description <<
function-scope-test
>>
author "Mike Grace"
logging on
}
global {
emit <|
function showMeTheMoney() {
alert("42!");
return 42;
}
|>;
}
rule call_global_function {
select when pageview ".*"
{
emit <|
var amount = showMeTheMoney();
alert("amount: "+amount);
function cool() {
alert("yes");
}
|>;
}
}
}
ブックマークレットを使用して example.com でアプリを実行した結果:

KRL がブラウザのページで実行する JavaScript を生成するとき、予期しない動作を引き起こす可能性のあるクロージャにコードを配置します。あなたのコードと私の例では、出力された JavaScript は同じスコープで実行されるため、関数呼び出しは互いにアクセスできます。JavaScript がボタンのクリックを監視し、グローバル ブロックで発行された関数を呼び出す場合、クリック関数がグローバルに発行された JavaScript 関数と同じスコープにないという問題が発生する可能性があります。