对于我的Google Docs电子表格模块,我想要一个能够接受值数组并迭代它们的函数,将它们添加到散列中.电子表格提交表单需要采用以下格式的值:
{"entry.0.single": value0,
"entry.1.single": value1,
"entry.2.single": value2}
Run Code Online (Sandbox Code Playgroud)
如果函数接受如下所示的数组,
[value0, value1, value2]
Run Code Online (Sandbox Code Playgroud)
是否有可能循环它们,保持运行计数器,并创建一个哈希?这在其他语言中是一项简单的任务.Python足以说明:
hash = dict()
i = 0
for val in values:
hash["entry.%s.single" % i] = val
i += 1
Run Code Online (Sandbox Code Playgroud)
可以用KRL完成吗?
我希望能够在一个电话中使用多个Kynetx应用程序(规则集).假设第一个应用程序是电话菜单,第二个应用程序提供菜单选项的功能.如何从一个重定向到另一个?
我正在尝试从我的Kynetx扩展程序发送电子邮件.作为测试运行,我设置了这个规则:
rule first_rule {
select when pageview ".*"
email:forward() with
to = "me@example.com" and
message = "Testing Kynetx Mail" and
htmlmessage = "<html><body><p>Jed has html</p></body></html>";
notify("Testing", "email sent");
}
Run Code Online (Sandbox Code Playgroud)
通知显示,但我从未看到电子邮件,甚至在我的垃圾邮件过滤器中也没有.也许电子邮件:forward()只能在上下文中使用
select when mail received
Run Code Online (Sandbox Code Playgroud)
?
作为替代方案,我想我可以使用类似PostMark的服务之一,也可以使用SNS(http://wiki.kynetx.com/pages/Kynetx_Network_Services_ (KNS)_API#SNS_Endpoint ).我只是觉得把它全部保存在Kynetx中真好.
我正与另一位开发人员合作开发大型Kynetx应用程序.为了更容易拆分工作,我希望有多个规则集,这样我们就可以单独处理它们而不会踩到彼此的脚趾.
有没有办法在另一个规则集中引发事件(显式或其他)?在后缀中有这样的事情:
raise explicit event next_section in a163x50
Run Code Online (Sandbox Code Playgroud)
我知道可以在浏览器中使用JavaScript,但我想从服务器端的KRL执行此操作.
我构建了一个扩展twitter.com的浏览器扩展.它打开一个jQuery UI模式窗口,并有一些文本输入.当我输入这些输入时,除J键和K键外,它都有效.这些键是一些自定义Twitter事件的一部分(在推文之间滚动).除了那两个,我可以获得所有键以实际键入框中的字母.
我想知道如何取消绑定keypress这两个键的东西,以便我可以输入这两个字母.关于如何解开它们的任何想法?我已经尝试捕获事件并阻止它的默认...没有帮助.我抓住它并返回真/假,也没有帮助.请告诉我.
我正在尝试使用jsonPath和pick函数来确定是否需要根据当前域运行规则.我正在做的简化版本是:
global
{
dataset shopscotchMerchants <- "https://s3.amazonaws.com/app-files/dev/merchantJson.json" cachable for 2 seconds
}
rule checkdataset is active
{
select when pageview ".*" setting ()
pre
{
merchantData = shopscotchMerchants.pick("$.merchants[?(@.merchant=='Telefora')]");
}
emit
<|
console.log(merchantData);
|>
}
Run Code Online (Sandbox Code Playgroud)
我期望的控制台输出是telefora对象,而是从json文件中获取所有三个对象.
如果不是商家=='Telefora'我使用merchantID == 16那么它的效果很好.我认为jsonPath也可以匹配字符串.虽然上面的例子没有搜索json的merchantDomain部分,但我遇到了同样的问题.
我尝试在用户定义的操作中使用emit块中的参数,如下所示:
my_action = defaction(css_class) {
emit <| $K(css_class).append("<span>!!</span>"); |>
}
Run Code Online (Sandbox Code Playgroud)
但是当它运行时,你会看到一个控制台消息"css_class未定义".
如何设置参数以便我可以在'emit'块中使用它?
在addons.mozilla.org或chrome.google.com/extensions上发布Kynetx浏览器应用程序是否有任何限制,这解释了为什么没有可用的kynetx应用程序?
当我搜索"Kynetx"时,我得到0结果.
https://addons.mozilla.org/en-US/firefox/search/?q=kynetx&cat=all&x=0&y=0
https://chrome.google.com/extensions/search?itemlang=&hl=en&q=kynetx
当我搜索PeerIndex,HoverMe,TwiKlout,YouTube刷新时,结果也是0 ...
我正在使用KRL通过他们的API向谷歌发送请求,这是我从他们那里得到的字面回复:
handleResponse({ "data": { "responses": [ { "response": "successful" } ] } } );
Run Code Online (Sandbox Code Playgroud)
你如何建议我通过选择处理这个,因为它不是'有效的'JSON语法?它包含有效的JSON语法,但整体上无效.谢谢你的帮助.
我想获取当前页面的URL(使用page:env("caller"))并提取其中的一部分.
例如,我想采取
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=cats
Run Code Online (Sandbox Code Playgroud)
并指派
cats
Run Code Online (Sandbox Code Playgroud)
变量.
我如何用KRL做到这一点?
我试过了
url = page:env("caller");
query = url.replace("http://www\.google\.com/search\?sourceid=chrome&ie=UTF-8&q=", "");
Run Code Online (Sandbox Code Playgroud)
但它只是将整个页面:env("调用者")分配给变量查询(例如http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=cats).
编辑:jQuery解决方案也很有可能.
编辑2:@JAM -
您发布的select语句似乎不起作用.我在http://www.google.com/search?q=cats上对其进行了测试,但它没有触发.不确定网址是否与网页浏览不匹配(看起来它应该与我匹配).
我把它放入的应用程序:
ruleset a835x36 {
meta {
name "regex testing2"
description <<
>>
author ""
logging on
}
rule get_query {
select when pageview "http://www.google.com/search.*(?:&|?)q=(\w+)(?:&|$)" setting(query)
notify("Query",query) with sticky = true;
}
}
Run Code Online (Sandbox Code Playgroud)
另外,我在寻找一个更强大的方式来获得在查询,因为谷歌有很多方法可以在搜索结果页面上的土地使用URL不会像http://www.google.com/search?q =猫.例如,去谷歌和搜索猫只是给了http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&source=hp&q=cats&aq=f&aqi=&aql=&oq=&gs_rfai=&pbx= 1&fp = 8ac6b4cea9b27ecb作为结果的URL.我想我可以用正则表达式解析任何东西,但是...
我正在我的KRL全局块中定义一个Javascript函数,我想在用户单击链接时调用该函数.以下是规则集的相关部分:
global {
emit <|
function clear_hold() {
app = KOBJ.get_application("a421x26");
app.raiseEvent("clear_hold");
}
|>;
}
rule add_link_to_clear_hold {
select when pageview ".*"
pre {
clear_div = << <div id="clear_hold">
<a href="javascript:clear_hold()">Clear Hold</a>
</div> >>;
}
{
append("body", clear_div);
}
rule clear_the_hold {
select when web clear_hold
{
replace_html("#clear_link", "<div id='clear_link'>Not on hold</div>");
}
always {
clear ent:hold;
}
}
Run Code Online (Sandbox Code Playgroud)
当我单击链接时,我收到一条clear_link未定义的错误消息.
调用我的javascript函数需要做什么?