我正在尝试将一些 CSS 注入(inject)到我的 SharePoint 网页正文中以获得背景图像。 .js 本质上是这样的:
document.getElementsByTagName( "Body" )[ 0 ].style.backgroundImage = <My Image URL>
document.getElementsByTagName( "Body" )[ 0 ].style.backgroundSize = "50%"
document.getElementsByTagName( "Body" )[ 0 ].style.backgroundPosition = "50% 50%"
它按我的预期工作,除非中间有一个 iFrame(或任何其他“body”标签)。然后图像被放入 iFrame 以及我的页面正文中。这些 iFrame 本质上是弹出窗口,每当您需要上传文档、更改网站上的某些设置等时就会出现。它们不会一直出现,但我不希望图像出现在那里,无论如何。
当我调用 document.getElementsByTagName('Body')
我总是获取当前正在运行的任何 iFrame 的 Body 标记,或者我将获取文档的主体。但它始终是 1 项的 HtmlCollection 数组。如果我使用 document.body
也会发生同样的事情
所有正文标签都具有相同的通用设置 ( <body class="ms-backgroundImage" style="..." spellcheck="false">
),无论它们是网站的实际正文标签还是 iFrame 的正文。
Javascript 有没有办法说“适用于主体,但不适用于任何其他主体”?
最佳答案
您的描述与文档相矛盾(参见 https://developer.mozilla.org/en-US/docs/Web/API/Document/body )。您真的确定它的行为与您描述的一样吗?您描述的行为是我作为开发人员从未经历过的。 你能再检查一下并更新这个问题吗?
关于javascript - 将 CSS 应用于 iFrame(或其他元素)之外的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51953962/