【问题标题】:setAttribute does not set valuesetAttribute 不设置值
【发布时间】:2020-07-14 20:08:50
【问题描述】:

执行以下代码:

 var marker = document.createElement('a-marker');
 marker.setAttribute('preset', 'hiro');
 marker.setAttribute('scale', '0.75 0.75 0.75');
 sceneEl.appendChild(marker);

并检查生成的文档得到:

<a-marker preset="hiro" scale="" arjs-anchor="" material="" arjs-hit-testing=""></a-marker>

预设设置正确,但比例尺中没有值。如果我将scale 更改为randomName,它会正确设置。我究竟做错了什么?请注意,我使用的是 ar.js,它创建了 a-marker 元素类型,它是 aframe 框架的 a-entity 的扩展。

编辑:添加了最少的可重现代码。代码 sn-p 控制台记录相同,即未设置比例。

<!DOCTYPE html>
<html>
<head>
    <script src="https://aframe.io/releases/1.0.4/aframe.min.js"></script>
    <script src="https://raw.githack.com/AR-js-org/AR.js/master/aframe/build/aframe-ar-nft.js"></script>
    <script>
        window.onload = () => {
          var sceneEl = document.querySelector('a-scene'); 
        var marker = document.createElement('a-marker');
        marker.setAttribute('preset', 'hiro');
        marker.setAttribute('scale', '0.75 0.75 0.75');
        console.log(marker);
        sceneEl.appendChild(marker);
        };
    </script>
</head>

<body>
    <a-scene vr-mode-ui="enabled: false" embedded
        arjs="sourceType: webcam; debugUIEnabled: false;">
    </a-scene>
</body>
</html>

【问题讨论】:

  • 这段代码看起来不错,你还确定这种情况吗...
  • 我没有进行检查,而是做了一个如下所示的 Scott Marcus 的 console.log,控制台显示与上面相同的输出,如果我将 scale 更改为 randomName,则再次正常工作。

标签: javascript aframe ar.js


【解决方案1】:

请注意,我不能发表评论(点不够)。
很想知道你是否解决了这个问题。我也有同样的问题(在 gitter 上发布了一个示例:https://gitter.im/AR-js/help-and-support?source=orgpage

var model = document.createElement('a-box');
model.setAttribute('gps-entity-place', latlngInfo);
model.setAttribute('material', 'color: red');
model.setAttribute('scale', '0.21 0.21 0.21');
scene.appendChild(model);

和你一样,如果我放一个随机的属性名称,那么值就会被设置。在我的案例中使用 ar.js 属性名称时似乎会中断。对你如何解决它非常感兴趣!

【讨论】:

  • 很遗憾没有。我正在研究我的项目的另一个方面,但现在我暂时将其搁置在脑后。
【解决方案2】:

无法复制。似乎工作正常:

var marker = document.createElement('a-marker');
marker.setAttribute('preset', 'hiro');
marker.setAttribute('scale', '0.75 0.75 0.75');
console.log(marker);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2022-11-15
    相关资源
    最近更新 更多