我正试图在sharepint中隐藏iframes 0365功能区,但它只是返回此...
TypeError: document.getElementById(...) is null
这是我正在测试的代码,我将使用display:none最终......
document.getElementById('.content-frame').contentDocument.body.getElementById('#suiteBarDelta').style.visibility = 'hidden';
有更好的方法吗?
答案 0 :(得分:0)
假设您将此脚本直接添加到包含“父”窗口代码的html文件中(即,它具有iframe)。确保在执行此代码时定义iframe(因此,将脚本块放在iframe元素之后,或使用window.onload或document.ready处理程序)
<iframe class='content-frame'></iframe>
...
<script>
document.getElementsByClassName("content-frame")[0].addEventListener("load", function () {
// the document in the iframe has loaded. let's hide that ribbon bar
var ribbonBar = this.contentDocument.getElementById("suiteBarDelta");
if (ribbonBar) {
ribbonBar.style.visibility = 'hidden';
} else {
console.log("uh oh, ribbonBar still does not exist");
}
});
</script>
我真的不知道Sharepoint是否做了很多恶作剧来构建iframe中的内容(比如调用异步请求来获取功能区) - 但这肯定会破坏这段代码(你会得到呃哦,控制台中的消息。)