Javascript Mozilla a-frame a-frame启动检查器从按钮点击改为按键

Javascript Mozilla a-frame a-frame启动检查器从按钮点击改为按键,javascript,mozilla,aframe,Javascript,Mozilla,Aframe,我们都知道可以使用strg+alt+i启动inspector,但我现在正在尝试向我的用户界面添加一个按钮,该按钮也可以执行相同的操作: function customEnterInspector () { var scene = document.querySelector('a-scene'); if (scene) { if (scene.hasLoaded) { this.injectInspector

我们都知道可以使用strg+alt+i启动inspector,但我现在正在尝试向我的用户界面添加一个按钮,该按钮也可以执行相同的操作:

function customEnterInspector () {
        var scene = document.querySelector('a-scene');
        if (scene) {
            if (scene.hasLoaded) {
                this.injectInspector();
            } else {
                scene.addEventListener('loaded', this.injectInspector());
            }
        }
    }

    $( "#intoinspector" ).click(function() {
        customEnterInspector();
    });
但是,我确实得到了错误:

 Uncaught TypeError: this.injectInspector is not a function
at customEnterInspector (index.html:925)
at HTMLAnchorElement.<anonymous> (index.html:933)
at HTMLAnchorElement.dispatch (jquery-3.1.1.min.js:3)
at HTMLAnchorElement.q.handle (jquery-3.1.1.min.js:3)
Uncaught TypeError:this.injectInspector不是函数
在customEnterInspector(index.html:925)
在兰开夏。(index.html:933)
在htmlanchorement.dispatch(jquery-3.1.1.min.js:3)
在htmlanchorement.q.handle(jquery-3.1.1.min.js:3)
我想我引用的元素(a-scene)不是正确的。我已经试过“窗口”,但也没用。还有什么建议我可以试试吗

谢谢&最好, -Max

injectInspector()方法是场景对象上的一部分。在上面发布的代码片段中,
这个
指的是按钮元素,它没有该方法。要引用组件,可以执行以下操作:

 var inspector = scene.components.inspector;

 // Show inspector immediately.
 inspector.injectInspector();

 // Show inspector after event.
 scene.addEventListener('loaded', function () {
   inspector.injectInspector();
 });

这段代码也很有效

function openEditor()
{
    window.postMessage('INJECT_AFRAME_INSPECTOR','*');
}
我已将此函数附加到执行前面代码的图像:

<input type="image" src="images/edit.png" width="35" height="35" onclick="openEditor();"/>

关于JS语法的旁注:
foo.addListener('event',callback())
将不起作用,因为
callback()
会立即调用,而不会传递给侦听器。相反,您需要
foo.addListener('event',callback)
,它只是将函数交给侦听器,以便以后可以调用它。添加
()
会使函数立即运行,这是我们不希望的。