在Salesforce中隐藏主页布局上的电子邮件

时间:2012-06-13 11:47:15

标签: salesforce visualforce force.com

我正在寻找隐藏在潜在客户页面布局上的电子邮件。

我将它包含在已经有一个visualforce页面的部分中,但是PageLayout没有检测到它并且仍然要求它在布局上。

有没有办法从PageLayout中删除它?

我已经读过你可以编辑一个选项列表,但没有找到任何可靠的例子。我还读到了关于字段级可访问性的内容,但我不认为这是可行的方法,因为每个人都是同一个角色的一部分,如果您是所有者,我只会根据细节排除。我也尝试过javascript,但是因为我的visualforce页面是在iframe中加载的,所以我无法访问iframe的父文档,以便能够隐藏或删除电子邮件中的值,而不是作为所有者查看。

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

尝试使用存储在自定义按钮中的JavaScript隐藏字段。在按钮的On-Click JavaScript中,您可以包含将在页面加载时由隐藏电子邮件字段的jQuery运行的代码。然后,您也可以隐藏实际按钮。非常黑客的方法,但它应该工作。

以下是一些代码,用于放入点击后的JavaScript按钮(从Daniel Llewellyn's blog postmgsmith's force2b blog post修改)。希望这应该让你跳起来。我没有包含任何关于如何隐藏电子邮件字段的代码,但是你说你已经通过Visualforce页面尝试了它,所以我想我会把那部分留给你。干杯!

var interval;
//The main function that does all the work
function appendScript() {
    // Include core jQuery library by injecting it into the DOM
    var script= document.createElement('script');
    script.type= 'text/javascript';
    script.src= 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
    head.appendChild(script);

    // It takes a second to load, so put in a delay
    // (we don't want to try and reference the script
    // before it is actually loaded, so we store the interval
    // in a global variable, and set up an interval.
    // this interval dealio. This will keep running 
    // until jQuery has been found to be loaded and then
    //clears the interval so it doesn't keep running.

    interval=self.setInterval(function(){

        //Check to see if jQuery has loaded                           
        if(jQuery) {
            //if jQuery has loaded, clear the interval
            window.clearInterval(interval);

            // Hide the Email field

            // Hide the custom button
            var btnName = 'buttonName';
            try{
                var buttons = parent.document.getElementsByName(btnName);
                for (var i=0; i < buttons.length; i++) {
                    buttons[i].className="btnDisabled ";
                    buttons[i].disabled=true;
                    buttons[i].type='hidden';
                }
            } catch(e) {
                // var ee = e.message || 0; alert('Error: \n\n'+e+'\n'+ee);
             }
        }
    }, 300);    
}

appendScript();