“未授权”文字是通过Shadow Element来实现,并通过设置成private来阻止外界对其内容的修改。这种方案看似无懈可击,但还有一种方法来实现隐藏这些文字。那就是在外部内容渲染前,劫持attachShadow接口调用,向其注入隐藏这些文字的样式代码。代码如下:
<script> let originShadow = Element.prototype.attachShadow; Element.prototype.attachShadow = function (...args) { const shadowRoot = originShadow.call(this, ...args); let style = document.createElement("style"); style.innerHTML = "div { display: none !important; }"; shadowRoot.appendChild(style); return shadowRoot; }; </script>