我有这个按钮:
<a id="customAddNew" href="/ibs/_layouts/listform.aspx?PageType=8&ListId={CED7A37E-B1B4-46DD-B5C6-9232195D7E16}&RootFolder=" target="_self">Submit Work Order</a>
我正在尝试使用此脚本根据登录用户隐藏按钮:
script type="text/javascript">
var email = $().SPServices.SPGetCurrentUser({
fieldName: "EMail",
debug: false
});
var trimmedEmail = email.split("@");
var newButton = document.getElementById("customAddNew");
if (trimmedEmail[1] == "napacanada.com"){
//Is NAPA User, which can't Add New Items
alert("napa user");
newButton.style.display = "none";
//$('#customAddNew').attr("display","none");
alert("check point")
}else{
//Is City User, can Add New Items
alert("none napa user");
newButton.style.display = "block";
//$('#customAddNew').attr("display","block");
}
</script>
我尝试过使用JavaScript和jQuery,但都没有用。这是我得到的错误:
无法读取null
的属性'style'
第一个警报可以正常运行,具体取决于用户,而不是检查点警报
答案 0 :(得分:2)
看起来此脚本未设置为在任何特定时间运行,这意味着它可以在您的按钮出现在页面上之前执行。您正在使用jQuery,因此您可以利用document.ready事件:
<script type="text/javascript">
$(document).ready(function(){
var email = $().SPServices.SPGetCurrentUser({
fieldName: "EMail",
debug: false
});
var trimmedEmail = email.split("@");
var newButton = document.getElementById("customAddNew");
if (trimmedEmail[1] == "napacanada.com"){
//Is NAPA User, which can't Add New Items
alert("napa user");
newButton.style.display = "none";
//$('#customAddNew').attr("display","none");
alert("check point")
}else{
//Is City User, can Add New Items
alert("none napa user");
newButton.style.display = "block";
//$('#customAddNew').attr("display","block");
}
});
</script>
了解更多信息:http://learn.jquery.com/using-jquery-core/document-ready/