javascript - chrome 未捕获异常错误 : cannot set property 'onclick' of null

标签 javascript html google-chrome

我将 HTML5 和 javascript 应用程序放在一起,但由于某种原因,我从 chrome 收到异常错误,我不知道为什么。

Uncaught exception error from chrome: cannot set property 'onclick' of null

这是我的 html

<section class="experiment">
<div class="inner" style="height: 5em;">
<audio id="audio" autoplay controls></audio>
<button class="recorder-btn" id="record-audio">Record</button>
<button class="recorder-btn" id="stop-recording-audio" disabled>Stop</button>
<h2 id="audio-url-preview"></h2>
</div>
</section>

这是我的 JS

   function getByID(id) {
    return document.getElementById(id);
}

var recordAudio = getByID('record-audio'),
    stopRecordingAudio = getByID('stop-recording-audio');

var audio = getByID('audio');


var audioConstraints = {
    audio: true,
    video: false
};

var audioStream;
var recorder;

recordAudio.onclick = function() {
    if (!audioStream)
        navigator.getUserMedia(audioConstraints, function(stream) {
            if (window.IsChrome) stream = new window.MediaStream(stream.getAudioTracks());
            audioStream = stream;

            audio.src = URL.createObjectURL(audioStream);
            audio.muted = true;
            audio.play();

            // "audio" is a default type
            recorder = window.RecordRTC(stream, {
                type: 'audio'
            });
            recorder.startRecording();
        }, function() {
        });
    else {
        audio.src = URL.createObjectURL(audioStream);
        audio.muted = true;
        audio.play();
        if (recorder) recorder.startRecording();
    }

    window.isAudio = true;

    this.disabled = true;
    stopRecordingAudio.disabled = false;
};

最佳答案

鉴于您的代码仅使用 onclick 一次,很明显 recordAudionull。 为什么?您的问题仅供猜测。

可能是因为您的 JavaScript 不在页面底部,并且当它运行时,DOM 树尚未构建。

关于javascript - chrome 未捕获异常错误 : cannot set property 'onclick' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26030463/

相关文章:

css - 带有 chrome 的背景中心(错误)

来自简码的 javascript 数组

javascript - 在浏览器 (javascript) 中将 Cognito 凭据与 AWS 结合使用时,不断出现 "missing credentials"错误

javascript - 在 CSS 中覆盖边框样式

javascript - 在实际更改选择框之前获取 onChange 值

无需 Flash 即可在网络上录制音频

google-chrome - Chrome 开发工具第一个内存堆快照异常大

JavaScript点击字母显示文字问题

javascript - CSS 背景色有效性

html - 子元素在父元素中的定位