我在哪里可以在KRL规则集中使用$ K jquery?

时间:2011-02-03 00:02:17

标签: javascript krl

我正在编写一个应用程序,尝试使用JavaScript修改页面,但我无法确定将运行的JavaScript放在哪里。我正在使用$ K的KRL特定jQuery句柄。

  • 我可以在KRL规则集/应用中使用JavaScript的所有地方在哪里?
  • 您是否有一个示例演示如何在每个领域使用JavaScript?

1 个答案:

答案 0 :(得分:3)

将javascript直接放到KRL规则集内的网页上有两种方法。通过发射块或外部资源。我们先讨论发射块。

Emits可以出现在规则的操作块中,也可以出现在规则集的全局块中。您可以使用heredocclownhats的发射,但首选小丑。

以下是在规则中发出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.");
    |>;
}

将javascript放置在KRL页面上的第二种方法是使用external resource

我将引用您的链接文档来获取详细信息,但是您在规则集的元块中包含了一个外部javascript资源,如下所示:

use javascript resource "url-to-resource"

假设我有以下内容是位于my-personal-website.com/awesome.js的javascript文件的内容:

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

要在规则集中使用它:

meta {
   // normal meta stuff...
   use javascript resource "my-personal-website.com/awesome.js"
}

这是一个完整的规则集,显示了在KRL规则集中将javascript放置在页面上的两种不同方法:

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上运行应用后拍摄的动作: exampley.com rocks!

您可以通过获取应用书签here来自行试用。