0
0

More than 3 years have passed since last update.

【Salesforce】VisualforceページでLightning ExperienceとSalesforce Classicの判別をする

Posted at

VisualforceページでLightning ExperienceとSalesforce Classicの判別をする

Visualforceページを作っていて、Lightning ExperienceとSalesforce Classicでコードの処理内容を分岐させたいと思った事があるのではないだろうか。今回はJavaScriptを用いてユーザーがどちらのUIを使用しているのかを判別する方法を記述する。

IsLightningOrSalesforceClassic.vfp
<apex:page >
    <apex:includeScript value="https://code.jquery.com/jquery-3.2.1.min.js"/>
    <script type="text/javascript" import="true">
    function IsLightningOrSalesforceClassic() {
        return((typeof sforce != 'undefined') && sforce && (!!sforce.one));
    }
    function checkExperience(){
        if(IsLightningOrSalesforceClassic()) {
            alert('LightningExperienceです');
        } else {
            alert('ClassicExperienceです');
        }
    }

    $(function(){
        checkExperience();
    });
    </script>
</apex:page>

説明

内容としては簡単である。"sforceオブジェクトが定義されているか"そして定義されている場合はoneプロパティが有効化されているかどうかを確認している。
sforceオブジェクトが定義されていない場合はClassic UIで、かつsforceオブジェクトが定義されつつも.oneプロパティが有効になっている場合はSalesforceアプリ(Salesforce1アプリ)であると判断出来る。
Salesforceオブジェクトが定義されており、かつ.oneプロパティが無効になっている場合はLightning Experienceであると判断できるという仕組みである。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0