setAttribute не устанавливает значение - PullRequest
0 голосов
/ 14 июля 2020

Выполнение следующего кода:

 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, который является расширением a-entity структуры aframe.

Edit: добавлен минимальный воспроизводимый код. консоль фрагмента кода регистрирует то же самое, т.е. масштаб не установлен.

<!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>

Ответы [ 2 ]

0 голосов
/ 25 июля 2020

Обратите внимание, что я не могу комментировать (недостаточно баллов). Было бы любопытно услышать, если вы решили эту проблему. У меня такая же проблема (опубликовал пример на 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 в моем случае. Так интересно, как вы это решили!

0 голосов
/ 14 июля 2020

Невозможно воспроизвести. Вроде нормально работает:

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