如何安排顶点运行javascript函数?

时间:2019-03-09 18:36:23

标签: javascript salesforce apex visualforce

我想在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

1 个答案:

答案 0 :(得分:1)

您无法从apex执行javascript,由于来自浏览器的页面请求,Visualforce(以及其中包含的javascript)用于呈现HTML。

在您的示例中,从Schedulable类调用javascript函数alert('function calling')毫无意义,因为Schedulable类是在浏览器上下文之外异步执行的。

您打算在JavaScript函数中做什么?最好的选择是将其复制到顶点。此外,如果需要,可以从Visualforce页面重新使用该顶点代码。