从KRL闭包之外调用KRL中定义的javascript函数

Ran*_*ohn 2 krl

我正在我的KRL全局块中定义一个Javascript函数,我想在用户单击链接时调用该函数.以下是规则集的相关部分:

global {
  emit <|
    function clear_hold() {
      app = KOBJ.get_application("a421x26");
      app.raiseEvent("clear_hold");
    }

  |>;
}

rule add_link_to_clear_hold {
  select when pageview ".*"
  pre {
    clear_div = << <div id="clear_hold">
      <a href="javascript:clear_hold()">Clear Hold</a>
      </div> >>;
  }
  {
    append("body", clear_div);
  }

rule clear_the_hold {
  select when web clear_hold
  {
    replace_html("#clear_link", "<div id='clear_link'>Not on hold</div>");
  }
  always {
    clear ent:hold;
  }
}
Run Code Online (Sandbox Code Playgroud)

当我单击链接时,我收到一条clear_link未定义的错误消息.

调用我的javascript函数需要做什么?

Mik*_*ace 5

建议使用以下名称间距方法将JavaScript函数附加到KOBJ对象,以避免与用户可能已运行的其他应用程序发生冲突.

KOBJ.a60x33.clear_hold = function() { 
  KOBJ.log('...wohoo! You found me!'); 
}
Run Code Online (Sandbox Code Playgroud)

然后可以使用该函数调用该函数

KOBJ.a60x33.clear_hold();
Run Code Online (Sandbox Code Playgroud)

  • 我以前用过这种方法; 它运作得很好. (2认同)