2011-02-03 9 views
3

JavaScriptを使用してページを修正しようとするアプリを作成していますが、実行したいJavaScriptをどこに配置するかを調べるのに問題があります。私は$ KのKRL固有のjQueryハンドルを使用しています。

  • 私のKRLルールセット/アプリケーションでJavaScriptを使用できる場所はどこにありますか?
  • これらの各領域でJavaScriptを使用している例がありますか?
+0

うわー、この質問はおなじみです! :) – Dustin

+0

@ダスティン、ハハ!はい。私はあなたにそれを頼んだので、あなたはそれに尋ねるつもりだったかどうかは分かりません –

答えて

3

JavaScriptをKRLルールセット内のWebページに直接配置するには、2通りの方法があります。 emitブロックまたは外部リソースを介して。最初にemitブロックについて説明しましょう。

エミットは、ルールのアクションブロックまたはルールセットのグローバルブロックに表示されます。 heredocまたはclownhatsのいずれかの発光を使用できますが、クラウンハットが優先されます。ここで

はルールではJavaScriptを放射する例を示します

rule emitter { 
    select when web pageview "exampley.com" 
    { 
     emit <| 
      $K("body").append("Hello from a rule."); 
     |>; 
    } 
} 

ここでグローバルブロックでJavaScriptを放射する例を示します

global { 
    emit <| 
     $K("body").append("Hello from the global block."); 
    |>; 
} 

KRLでページにJavaScriptを配置する2番目の方法external resourceを使用することです。

私は細目のためのリンクドキュメントにあなたを参照するつもりですが、あなたがそうのようなあなたのルールセットのメタブロック内のJavaScriptリソースの外部含まれますのは、私は以下の通りです持っていると言う

use javascript resource "url-to-resource" 

$K("body").append("Hello from an external resource."); 

ルールセットでそれを使用するには::

meta { 
    // normal meta stuff... 
    use javascript resource "my-personal-website.com/awesome.js" 
} 
に位置するJavaScriptファイルの内容 exampley.comでアプリを実行した後

ruleset a369x151 { 
    meta { 
     name "fun-with-javascript" 
     description << 
      fun-with-javascript 
     >> 
     author "AKO" 
     logging on 

     use javascript resource "http://dl.dropbox.com/u/4917848/js/example-external-resource.js" 
    } 

    global { 
     emit <| 
      $K("body").append("<br/>Hello from the global block."); 
     |>; 
    } 

    rule emitter { 
     select when web pageview "exampley.com" 
     { 
      emit <| 
       $K("body").append("<br/>Hello from a rule."); 
      |>; 
     } 
    } 
} 

アクションショット: はexampley.com rocks!

あなたによってそれを自分で試してみることができます

はここKRLルールセット内のページにJavaScriptを配置する2種類の方法を示す完全なルールセットですアプリのブックマークレットを取得するhere

関連する問題