Webイベントに応答するときに、以前にアクションを実行した(?)通知ボックスを非表示にしたいのですが。削除するように指示するKRLの方法はありますか、それともjavascriptを使用して実行する必要がありますか?
javascriptを使用して実行する必要がある場合は、例を提供してください
Webイベントに応答するときに、以前にアクションを実行した(?)通知ボックスを非表示にしたいのですが。削除するように指示するKRLの方法はありますか、それともjavascriptを使用して実行する必要がありますか?
javascriptを使用して実行する必要がある場合は、例を提供してください
私の以前の答えはすべてひどいです!本当にすべきことは、閉じるボタンでクリック イベントをトリガーすることです。
$K(".kGrowl-notification .close").trigger("click");
Web イベントで応答しているときにその JavaScript を発行するだけです。
より良い例のアプリ:
ruleset a60x469 {
meta {
name "better-close-notify-example"
description <<
better-close-notify-example
>>
author "Mike Grace"
logging on
}
rule put_notify_on_page {
select when pageview ".*"
{
// put notify on page
notify("Hello","I'm on your page") with sticky = true;
// raise web event
emit <|
setTimeout(function() {
app = KOBJ.get_application("a60x469");
app.raise_event("clear_notify");
}, 2000);
|>;
}
}
rule clear_notify {
select when web clear_notify
{
emit <|
$K(".kGrowl-notification .close").trigger("click")
|>;
}
}
}
これを実現する方法はいくつかあります。
例:
set_element_attr
set_element_attr(".kGrowl", "style", "display:none");
放出する [取り除く] (悪)
emit <|
$K(".kGrowl").remove();
|>;
出す [隠す]
emit <|
$K(".kGrowl").hide();
|>;
replace_html (悪)
replace_html(".kGrowl","");
完全なアプリの例:
ruleset a60x468 {
meta {
name "example-clear-notify"
description <<
example-clear-notify
>>
author "Mike Grace"
logging on
}
rule put_notify_on_page {
select when pageview ".*"
pre {
button =<<
<button id="clear-notify">Click me to clear the notify</button>
>>;
}
{
notify("Hello","I'm on your page") with sticky = true;
append("body", button);
emit <|
$K("#clear-notify").click(function() {
app = KOBJ.get_application("a60x468");
app.raise_event("clear_notify");
});
|>;
}
}
rule clear_notify {
select when web clear_notify
{
replace_inner(".kGrowl","");
}
}
}
アプリのブックマークレットの例: => http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-clear-notify-dev_bookmarklet.html
example.com で実行されるアプリの例:
クリアボタンがクリックされました: