A-Frame内容在FireFox和Safari上呈现时不会在Chrome上呈现。

根据CodePen here
const {hyper,wire} = hyperHTML;

class Box extends hyper.Component {

  render() { return this.html`
    <a-scene>
        <a-box color="red" position="0 2 -5" rotation="0 45 45" scale="2 2 2"></a-box>
    </a-scene>
  `;
  }
}

document.body.appendChild(new Box().render());


我确定我丢失了一些东西,所有浏览器(CodePen)中相同的内容都可以像静态HTML一样呈现。

<body>
  <a-scene>
    <a-box color="red" position="0 2 -5" rotation="0 45 45" scale="2 2 2"></a-box>
  </a-scene>
</body>

最佳答案

更新:我已经在hyperHTML中强制解决了该问题,即使该问题与AFrame使用自定义元素V0有关。一旦AFrame迁移到V1,我将删除强制修复程序。

现在,您的密码笔和我的密码笔都可以使用。问候



我已经forked your pen并编写了几乎相同的代码:

const { hyper } = hyperHTML;

class Box extends hyper.Component {
  render() { return this.html`
    <a-scene>
          <a-box color="red"
            position="0 2 -5"
            rotation="0 45 45"
            scale="2 2 2"></a-box>
        </a-scene>`;
  }
}

hyper(document.body)`${new Box}`;


但最后我必须添加一条难看的线:

// if you comment this out nothing works
document.body.innerHTML = document.body.innerHTML;


这是因为AFrame使用了“自定义元素” polyfill(实际上是我的),当从模板节点中克隆注册表时,它似乎不会触发注册表。

我一直无法复制a polyfill known issue,这可能是我一直在寻找的用例。

不幸的是,现在看来AFrame组件可能在hyperHTML方面遇到了麻烦。

抱歉,我将尽快修复此问题。

10-05 21:08