我很难理解这里发生了什么。我正在尝试在Force.com自定义对象的列表视图上为一个按钮编写onClick JavaScript代码。
以下是JS代码:
{!REQUIRESCRIPT("/soap/ajax/15.0/apex.js")}
{!REQUIRESCRIPT("/soap/ajax/15.0/connection.js")}
var myURL = sforce.apex.execute("MyWebServices", "myUrl", {});
这是我尝试调用的网络服务。
global class MyWebServices {
webservice static String myUrl(){
return 'www.foo.com';
}
}
当我点击按钮时,会弹出一个小警告窗口,上面写着:“遇到OnClick JavaScript按钮或链接的问题:无法调用未定义的“execute”方法”。当我遍历“sforce”的成员时,没有“apex”。在这个组织中,我使用了完全相同的语法来创建另一个按钮,唯一的区别是我调用的方法不同。那个按钮可以正常工作。事实上,如果我将有问题的脚本代码复制到另一个按钮的工作脚本头部,它也可以正常工作。我错过了什么?这个问题涉及两个按钮元素的详细信息:一个(工作正常)是帐户上的列表视图按钮,另一个(损坏的)是Foo__c自定义对象列表按钮。我对两个按钮都使用了这个代码:
{!REQUIRESCRIPT("/soap/ajax/10.0/apex.js")}
{!REQUIRESCRIPT("/soap/ajax/10.0/connection.js")}
alert( sforce.apex.execute("HammockWebServices", "crossCoverageUrl", {}));
在账户上它完美地运作,但在Foo__c上却不行。我已经尝试交换!REQUIRE...语句的顺序,但没有观察到任何效果。除了按钮的标签和名称外,它们似乎被定义为相同的内容:列表按钮、显示复选框、执行JavaScript、OnClickJavaScript。是否存在对象级别的权限、配置文件或共享规则来影响可以访问哪些JavaScript包?(请注意,即使是系统管理员也无法实现此目的)。