2011-01-12 16 views
2

ユーザーがリンクをクリックしたときに呼び出すJRLのJavaScript関数を定義します。私はclear_linkが定義されていないエラーメッセージが表示されますリンクをクリックすると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; 
    } 
} 

:ここではルールセットの関連する部分です。

javascript関数を呼び出すには何が必要ですか?

答えて

5

:それは目に見える私はリンクからそれを呼び出すためにその後

KOBJ.clear_hold = clear_hold; 

関数を定義した後KOBJに追加して外にようにするにはユーザーが実行しているかもしれない他のアプリケーションとの衝突を避けるためにKOBJオブジェクトに追加します。

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

機能は、私は前にこのメソッドを使用しました

KOBJ.a60x33.clear_hold(); 
+2

で呼び出すことができます。それは非常にうまくいく。 –

3

この関数はKRLクロージャ内で定義されていますが、クロージャの外側から呼び出していました。 JavaScriptの機能を接続するために、次の名前の間隔メソッドを使用することが提案されて

href="javascript:KOBJ.clear_hold() 
関連する問題