2

我在我的 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;
  }
}

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

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

4

2 回答 2

5

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

KOBJ.a60x33.clear_hold = function() { 
  KOBJ.log('...wohoo! You found me!'); 
}

然后可以调用该函数

KOBJ.a60x33.clear_hold();
于 2011-01-12T20:47:25.933 回答
3

该函数是在 KRL 闭包内定义的,但我是从闭包外部调用的。为了让它在外面可见,我在定义函数后将它添加到了 KOBJ

KOBJ.clear_hold = clear_hold;

然后从链接调用它:

href="javascript:KOBJ.clear_hold()
于 2011-01-12T20:12:13.477 回答