首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iFrame中定义customElements会抛出"DOMException:操作不受支持“。为什么?

在iFrame中定义customElements会抛出"DOMException:操作不受支持“。为什么?
EN

Stack Overflow用户
提问于 2018-12-04 20:19:41
回答 1查看 282关注 0票数 1

我想将自定义元素定义添加到我的iFrame中。

在主浏览器窗口中,定义工作得很好:

customElements.define("custom-tag", customTag)

然后,在将定义移动到iFrame之后,我得到了DOMException: operation not supported。该函数在那里,但不受支持。

iFrame.contentWindow.customElements.define("custom-tag", customTag);

这有什么特别的原因吗?在iFrame中定义自定义标记是被设计为阻止的并且无法解决,还是应该在我的iFrame配置中包含一些东西来允许这种“不安全”行为?

EN

回答 1

Stack Overflow用户

发布于 2018-12-05 06:01:03

如果要将主HTML文档中的自定义元素注入到<iframe>元素中,可以将其添加到<script>元素中。

例如,通过srcdoc属性:

代码语言:javascript
复制
frame.srcdoc = `
  <script>
    class customTag extends HTMLElement {
        constructor() {
    	    super()
            this.attachShadow( { mode: 'open' } )
                .innerHTML = "Hello World"
        }
    } 
    customElements.define( 'custom-tag', customTag )
  <\/script>
  <custom-tag></custom-tag>
`
代码语言:javascript
复制
<iframe id=frame></iframe>

注意结束</script>标记中的转义字符\

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53612842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档