无法读取“加载”的属性。未定义的错误

时间:2016-06-08 15:02:59

标签: javascript google-drive-api

我正在使用谷歌驱动器API,我只是在收到错误时尝试加载库。

function loadDriveApi(){
    gapi.client.load('drive','v3',setMeta())
}

这是我从文档中获得的加载函数。这由addlistener调用

<script>document.getElementById('save').addEventListener('click',loadDriveApi())</script>

并且loadDriveApi最终调用此函数。

function setMeta(){
    var body={'contentHints.indexableText': document.getElementById('drop')}
    var request = gapi.client.drive.files.update({
        'fileId': document.getElementById('doc_id').value,
        'resource': body
    });
    request.execute(function(resp){
        console.log('Copy ID: ' + resp.id); 
    })  
}

这让我发疯,它可能是一个如此小而愚蠢的东西,最终会成为问题,但如果你有任何建议,我很乐意听到它们。我也是javascript的新手,所以这可能就是为什么

由于

1 个答案:

答案 0 :(得分:1)

gapi.client可能为null或未定义。如果是,则不存在任何属性,因此您将收到未定义的属性错误。

确保在调用loadDriveApi()之前已完全加载Google Drive API JavaScript依赖项。

此外,您应该将loadDriveApi函数传递给addEventListener方法,而不是调用loadDriveApi的结果。

例如:

<script>document.getElementById('save').addEventListener('click',loadDriveApi())</script>

应该是

<script>document.getElementById('save').addEventListener('click', loadDriveApi)</script>

同样适用于gapi.client.load函数:

gapi.client.load('drive','v3',setMeta())

应该是

gapi.client.load('drive','v3',setMeta)