将SF变量值传递给jQuery值以在链接

时间:2016-02-13 01:34:06

标签: jquery html salesforce apex-code visualforce

我在这个问题上需要一些帮助,因为我已经在网上搜索并尝试了近三个小时不同的事情,到目前为止还没有任何工作。

以下是我要做的事情: 我构建了一个使用自定义css的自定义VF页面。页面部分包含在组件中。在我的标题组件中,我有一个HTML链接,其格式看起来像一个按钮。当用户点击该按钮时,他们应该被带回他们来自的机会记录。我无法使用jQuery检索机会的ID,无论我尝试多少次/事情,这就是链接的样子( /%7B!oppId%7D

我很感激在这件事上有任何帮助,因为我似乎被卡住了!

谢谢:)

PAGE CODE:

<apex:page standardController="Opportunity" extensions="DEMO_ScheduleOpportunityController" showHeader="false" sidebar="false" standardStylesheets="false">
<head>
</head>
<body>
    <header id="header-section">
        <c:DEMOscheduleHeader opportunity="{!opportunity}" />
    </header>
    <apex:includeScript value="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js" />
    <apex:includeScript value="{!URLFOR($Resource.DEMO_Schedule, 'js/page.js')}" />
</body>
</apex:page>

组件代码:

<apex:component>
<apex:attribute name="opportunity" type="Opportunity" required="true" description="This is Opportuinity used by the Schedule" />
    <a href="#" id="exit" class="btn">Exit</a>
</apex:component>

控制器代码:

public with sharing class DEMO_ScheduleOpportunityController {
    public Opportunity opportunity {get; set;}

    public DEMO_ScheduleOpportunityController(ApexPages.StandardController controller) {
        Initialize();
    }
    public void Initialize() {
        opportunity = [SELECT Id FROM Opportunity WHERE Id = :ApexPages.currentPage().getParameters().get('id')];
    }
}

JS CODE:

$(document).ready(function() {
    var oppId = '{!oppId}'; // the Opportunity Id
    var exitURL = "/" + oppId; // creating and forming the exitURL
    document.getElementById('exit').href = exitURL; // assigning the exitURL to the Exit Button
});

1 个答案:

答案 0 :(得分:1)

apex:includeScript组件用于引入静态资源。也就是说,它不会合并来自apex控制器的变量。

您可以直接在Visualforce页面代码中设置Javascript中的变量。

E.g。

<script type="text/javascript">
    var orgId = '{!opportunity.Id}';
</script>

如果您将loadOnReady="true"属性添加到includeScript,则可以在静态资源中使用orgId