我正在寻找隐藏在潜在客户页面布局上的电子邮件。
我将它包含在已经有一个visualforce页面的部分中,但是PageLayout没有检测到它并且仍然要求它在布局上。
有没有办法从PageLayout中删除它?
我已经读过你可以编辑一个选项列表,但没有找到任何可靠的例子。我还读到了关于字段级可访问性的内容,但我不认为这是可行的方法,因为每个人都是同一个角色的一部分,如果您是所有者,我只会根据细节排除。我也尝试过javascript,但是因为我的visualforce页面是在iframe中加载的,所以我无法访问iframe的父文档,以便能够隐藏或删除电子邮件中的值,而不是作为所有者查看。
任何想法都会受到赞赏。
答案 0 :(得分:1)
尝试使用存储在自定义按钮中的JavaScript隐藏字段。在按钮的On-Click JavaScript中,您可以包含将在页面加载时由隐藏电子邮件字段的jQuery运行的代码。然后,您也可以隐藏实际按钮。非常黑客的方法,但它应该工作。
以下是一些代码,用于放入点击后的JavaScript按钮(从Daniel Llewellyn's blog post和mgsmith'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();