我想在Visualforce页面(找到here)中具有一个javascript函数,该函数希望利用Apex类和Scheduable Interface在Salesforce平台上执行
Visualforce页面
<apex:page controller="calljavascript_cls" >
<script>
function func()
{
alert('function calling');
}
</script>
<apex:outputText value="{!callfunc}" escape="false"></apex:outputText>
<apex:outputText value="{JavaScript}" ></apex:outputText>
</apex:page>
顶点类
public class calljavascript_cls
{
public string callfunc{get;set;}
public calljavascript_cls()
{callfunc='<script> func(); </script>';}
}
我还尝试创建调度程序类,该类会生成错误
global class scheduledMerge implements Schedulable {
global void execute(SchedulableContext SC) {
calljavascript_cls();
}
}
错误:
Error: Compile Error: Method does not exist or incorrect signature: void calljavascript_cls() from the type scheduledMerge at line 3 column 7
我尝试使用Apex Scheduler
答案 0 :(得分:1)
您无法从apex执行javascript,由于来自浏览器的页面请求,Visualforce(以及其中包含的javascript)用于呈现HTML。
在您的示例中,从Schedulable类调用javascript函数alert('function calling')
毫无意义,因为Schedulable类是在浏览器上下文之外异步执行的。
您打算在JavaScript函数中做什么?最好的选择是将其复制到顶点。此外,如果需要,可以从Visualforce页面重新使用该顶点代码。