使用feature隐藏sharepint 2013 菜单选项,比如“网站内容”
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Location="ScriptLink"
ScriptBlock="
function loadjQueryScripts(src) {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
head.appendChild(script);
}
function hideSiteActions() {
var menuItems = document.getElementsByTagName('ie:menuitem');
for (var key in menuItems)
{
if (key.endsWith('ViewAllSiteContents'))
menuItems[key].hidden = true;
}
}
_spBodyOnLoadFunctionNames.push('hideSiteActions');
"
Sequence="10001">
</CustomAction>
</Elements>
可js代码并没有做到这隐藏这一点。在sp2013里面隐藏菜单选项,该怎么隐藏,请求帮助。(只允许用feature)
[解决办法]
你的问题需要自己分析下:
1. 是JavaScript没有执行吗? 可以按F12看看你的Javascript 有没有加载
2. 如果JavaScript执行,debug下,看看JS是否找到了ViewAllSiteContents 菜单,如果没有要分析为什么了
3. 如果找到了ViewAllSiteContents 菜单,但是menuItems[key].hidden = true; 不Work,那就需要分析这个为啥不Work了,查下MSDN或这Google 下,是不是不支持这种方式了。
[解决办法]
hidden属性好使吗?试试吧ie:menuitem那个DOM删掉
menuItems[key].parentNode.removeChild(menuItems[key])
[解决办法]
你的Key的值不对。
在浏览器中直接执行“document.getElementsByTagName('ie:menuitem');”
是可以得到menu的数组的,但是循环的时候,key是一个menuitem对象啊,试一下key.id.endsWith('ViewAllSiteContents')
[解决办法]
以action方式写feature