tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:VisualforceエリアとJavaScript

Summer'15のあたりでホームページコンポーネントのHTMLエリアがサポート対象外となり、Visualforceエリアに変更されました。
f:id:tyoshikawa1106:20160106011747p:plain


VisualforceエリアはVisualforceページなのでJavaScriptの処理も実装が可能です。

VFArea.page
<apex:page showHeader="true" sidebar="false" id="page">
    <apex:form id="form">
        <apex:commandButton value="  CLICK!!  " onclick="return doClickBtn();" />
    </apex:form>
    <script type="text/javascript">
        function doClickBtn() {
            alert('OK!');
            return false;
        }
    </script>
</apex:page>

f:id:tyoshikawa1106:20160106013058p:plain


ですが、Visualforceエリアはiframeによる表示となります。
f:id:tyoshikawa1106:20160106013501p:plain


iframeなので次のような処理で標準画面の項目を操作するということはできないようになっています。

<script type="text/javascript">
    function doClickBtn() {
        var accName = window.parent.document.getElementById('acc2');
        console.log(accName);
        if (accName) {
            accName.value = 'Hello!';
        }
        return false;
    }
</script>

f:id:tyoshikawa1106:20160106013929p:plain


実際に試したことはなかったのでやってみました。Uncaught SecurityErrorとなるようです。
f:id:tyoshikawa1106:20160106014657p:plain



意外とお知らせJSの代わりになったりするかなと思ったのですが、そういう使い方はできませんでした。

関連記事