JavaScriptを使用してページを変更するためのアプリを作成していますが、実行するJavaScriptをどこに配置するかがわかりません。$KのKRL固有のjQueryハンドルを使用しています。
- KRLルールセット/アプリでJavaScriptを使用できるすべての場所はどこにありますか?
- これらの各領域でJavaScriptを使用する方法を示す例はありますか?
JavaScriptを使用してページを変更するためのアプリを作成していますが、実行するJavaScriptをどこに配置するかがわかりません。$KのKRL固有のjQueryハンドルを使用しています。
KRLルールセット内のWebページにJavaScriptを直接配置する方法は2つあります。エミットブロックまたは外部リソースを介して。まず、エミットブロックについて説明しましょう。
エミットは、ルールのアクションブロック、またはルールセットのグローバルブロックに表示できます。ヒアドキュメントまたはclownhatsのいずれかでemitを使用できますが、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番目の方法は、外部リソースを使用することです。
詳細については、リンクされたドキュメントを参照しますが、ルールセットのメタブロックに外部のjavascriptリソースを次のように含めます。
use javascript resource "url-to-resource"
次の場所にあるjavascriptファイルのコンテンツがあるとしましょうmy-personal-website.com/awesome.js
:
$K("body").append("Hello from an external resource.");
ルールセットでそれを使用するには:
meta {
// normal meta stuff...
use javascript resource "my-personal-website.com/awesome.js"
}
これは、KRLルールセットのページにJavaScriptを配置する2つの異なる方法を示す完全なルールセットです。
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でアプリを実行した後のアクションショット:
こちらからアプリのブックマークレットを入手して、自分で試すことができます。