gpt4 book ai didi

javascript - 类型错误 : Illegal invocation on function alias

转载 作者:行者123 更新时间:2023-11-28 07:15:28 27 4
gpt4 key购买 nike

我一直在尝试创建 JavaScript,其中包含用于管理充当文件系统的 IndexedDB 数据库的函数;下面的代码段有助于保护数据库免遭其他客户端脚本以未经授权的方式修改,但第 16 行会引发未捕获的“TypeError:非法调用”异常。

$(document).ready(function(){
var db;
var proxiedDBOpen = indexedDB.open.bind(window);
indexedDB.open = function(name, version) {
if(name === 'MyTestDatabase')
{
console.error('Security error: Unauthorized filesystem access.');
return;
}
else
{
return proxiedDBOpen.apply(window, arguments);
}
}

var request = proxiedDBOpen('MyTestDatabase', 4); // Uncaught TypeError: Illegal invocation

// Database management code follows (uses jQuery)...

});

阅读其他帖子后,我尝试确保在 proxiedDBOpen 调用范围内将 this 设置为 window ( Function.prototype.bind 在第 3 行被调用,试图做到这一点),但这似乎没有帮助;我还尝试了 var request = function(name, version) {return proxiedDBOpen.apply(this,arguments);}('MyTestDatabase', 4);,这会在调用 proxiedDBOpen.apply

最佳答案

@levi 的建议解决了我的问题(indexedDB.open 期望 this 在其上下文中是 indexedDB)。

关于javascript - 类型错误 : Illegal invocation on function alias,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30876577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com