Sharepoint Online无法隐藏iFrame功能区

时间:2018-01-24 18:18:32

标签: javascript iframe sharepoint office365 sharepoint-online

我正试图在sharepint中隐藏iframes 0365功能区,但它只是返回此...

TypeError: document.getElementById(...) is null

这是我正在测试的代码,我将使用display:none最终......

document.getElementById('.content-frame').contentDocument.body.getElementById('#suiteBarDelta').style.visibility = 'hidden';

有更好的方法吗?

1 个答案:

答案 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中的内容(比如调用异步请求来获取功能区) - 但这肯定会破坏这段代码(你会得到呃哦,控制台中的消息。)