我正在编写一个应用程序来尝试使用 JavaScript 修改页面,但我无法确定将要运行的 JavaScript 放在哪里。我正在使用 $K 的 KRL 特定 jQuery 句柄。
- 我可以在我的 KRL 规则集/应用程序中使用 JavaScript 的所有地方在哪里?
- 你有一个例子来演示在这些领域中使用 JavaScript 吗?
我正在编写一个应用程序来尝试使用 JavaScript 修改页面,但我无法确定将要运行的 JavaScript 放在哪里。我正在使用 $K 的 KRL 特定 jQuery 句柄。
有两种方法可以将 javascript 直接放到 KRL 规则集中的网页上。通过发射块或外部资源。让我们首先讨论发射块。
发射可以出现在规则的操作块中,也可以出现在规则集的全局块中。您可以将 emit 与heredoc或clownhats 一起使用,但首选 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 放置在页面上的第二种方法是使用外部资源。
我将向您推荐链接的文档以获取详细信息,但是您在规则集的元块中包含一个外部 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上运行应用程序后的动作:
您可以通过在此处获取应用程序书签来自己尝试。