Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Salesforce的潜在客户页布局中隐藏电子邮件_Salesforce_Visualforce_Force.com - Fatal编程技术网

在Salesforce的潜在客户页布局中隐藏电子邮件

在Salesforce的潜在客户页布局中隐藏电子邮件,salesforce,visualforce,force.com,Salesforce,Visualforce,Force.com,我在寻找隐藏在潜在客户页面布局电子邮件 我已经用visualforce页面将它包含在一个部分中,但是PageLayout没有检测到这一点,仍然要求它在布局中 有没有办法将其从页面布局中删除 我读过你可以编辑一个挑选名单,但没有找到任何这样做的可靠例子。我也读过关于字段级可访问性的文章,但我不认为这是一种方式,因为每个人都是同一角色的一部分,如果你是所有者,我只是排除了细节。我也尝试过javascript,但由于我的visualforce页面加载在iframe中,因此我无法访问iframe的父文档

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

我已经用visualforce页面将它包含在一个部分中,但是PageLayout没有检测到这一点,仍然要求它在布局中

有没有办法将其从页面布局中删除

我读过你可以编辑一个挑选名单,但没有找到任何这样做的可靠例子。我也读过关于字段级可访问性的文章,但我不认为这是一种方式,因为每个人都是同一角色的一部分,如果你是所有者,我只是排除了细节。我也尝试过javascript,但由于我的visualforce页面加载在iframe中,因此我无法访问iframe的父文档,以便在以非所有者身份查看时隐藏或删除电子邮件中的值


任何想法都将不胜感激。

尝试使用存储在自定义按钮中的JavaScript隐藏该字段。在按钮的点击JavaScript中,您可以包含隐藏电子邮件字段的jQuery在页面加载时运行的代码。然后还可以隐藏实际的按钮。这是一种非常简单的方法,但它应该是有效的

这里有一些代码可以放在点击JavaScript按钮中(由和修改)。希望这能让你开始。我没有包含任何关于如何隐藏电子邮件字段的代码,但是你说你已经在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();
var区间;
//完成所有工作的主要功能
函数appendScript(){
//通过将核心jQuery库注入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(脚本);
//加载需要一秒钟的时间,因此需要延迟
//(我们不想尝试引用脚本
//在实际加载之前,我们存储间隔
//在全局变量中,并设置一个间隔。
//此间隔处理。此操作将继续运行
//直到找到要加载的jQuery,然后
//清除间隔,使其不继续运行。
interval=self.setInterval(函数(){
//检查jQuery是否已加载
if(jQuery){
//如果jQuery已加载,请清除间隔
窗口。清除间隔(间隔);
//隐藏电子邮件字段
//隐藏自定义按钮
var btnName='buttonName';
试一试{
var buttons=parent.document.getElementsByName(btnName);
对于(变量i=0;i
由于更加复杂,我最终选择了完全不同的路线,但你的答案仍然有效。我最终创建了自定义视图,并根据渲染条件加载数据,因此我不再使用pagelayout。