我正在尝试通过 TypeScript 从网站(随机 OGS 示例)访问全局变量,以便从当前棋盘游戏获取数据。
我对 TS 还很陌生,所以我也不确定如何输入这个变量。全局变量本身实际上最初是在 TS 中创建的,但它具有无数的方法和属性,因为有如此多的功能。因此,如果我要自己输入它,我宁愿只输入我需要的内容(如果可能的话),或者以某种方式从某个包中导入它 - 我认为作者没有在任何地方公开发布它。
与此同时,还有一个问题是全局变量是否默认可用于浏览器扩展,但情况可能并非如此。
所以,我一直在尝试(我已经尝试过一百万个其他变体......)做的是类似 * - inside content.ts
,它在OGS域内运行 -:
interface Goban {
bounded_height: number;
}
declare var goban: Goban;
goban = window["global_goban"];
console.log(goban.bounded_height.toString());
我通常得到的错误是:
Uncaught ReferenceError: goban is not defined
那么我错过了什么?我必须创建声明文件 ( .d.ts
) 吗?处理这种从第三方代码导入全局变量的正确方法是什么?
*:根据您尝试处理window
对象的方式,您可能必须添加"suppressImplicitAnyIndexErrors": true
到您的对象中tsconfig.json
,以便 TS 不会静态地抱怨。
对于那些不熟悉如何开发浏览器扩展的人来说,在 TS 中开始的最简单方法是:
创建一个简单的manifest.json
,例如:
{ "manifest_version": 2, "name": "Name", "version": "0.0.2", "description": "Description.", "content_scripts": [ { "matches": ["*://*.online-go.com/*"], "js": ["content.js"] } ]}
content.ts
使用上一节中的代码创建一个文件。
编译为 JS 与tsc
.
将manifest.json
和content.js
作为解压的浏览器扩展导入到浏览器中。
加载随机 OGS 游戏并检查它。
呼唤远方
交互式爱情
相关分类