我正在编写一个应用程序,尝试使用JavaScript修改页面,但我无法确定将运行的JavaScript放在哪里。我正在使用$ K的KRL特定jQuery句柄。
答案 0 :(得分:3)
将javascript直接放到KRL规则集内的网页上有两种方法。通过发射块或外部资源。我们先讨论发射块。
Emits可以出现在规则的操作块中,也可以出现在规则集的全局块中。您可以使用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.");
|>;
}
将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上运行应用后拍摄的动作:
您可以通过获取应用书签here来自行试用。