3

Webイベントに応答するときに、以前にアクションを実行した(?)通知ボックスを非表示にしたいのですが。削除するように指示するKRLの方法はありますか、それともjavascriptを使用して実行する必要がありますか?

javascriptを使用して実行する必要がある場合は、例を提供してください

4

1 に答える 1

3

新しい Shiny Awesomer Answer!

私の以前の答えはすべてひどいです!本当にすべきことは、閉じるボタンでクリック イベントをトリガーすることです。

$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 で実行されるアプリの例:

代替テキスト

クリアボタンがクリックされました:

代替テキスト

于 2010-12-08T01:25:41.337 に答える