gpt4 book ai didi

javascript - 从 Dart 调用我的 JavaScript

转载 作者:行者123 更新时间:2023-11-29 21:58:23 25 4
gpt4 key购买 nike

这应该很简单,但我似乎无法理解它。

所以我有我的 dartFile.dart,然后我有我的 javaScriptFile.js。我如何链接这两者,以便我可以从我的 dartFile.dart 调用在我的 javaScriptFile.js 中声明的 JavaScript 函数?

我尝试遵循 this post 中提供的解释,但我想这对我来说太模糊了:/

编辑:这是我尝试过的:

在我的 javaScriptFile.js 中,只有这个简单的函数:

function myFunction() {
return 4;
}

在我的 dartFile.dart 中,只有这段代码:

import 'package:js/js.dart' as js;

void main() {
print(js.context.myFunction());
}

按照我提到的帖子中的说明,我在 pubspec.yaml 文件中添加了 js 的依赖项。基本上,我正是原始问题的提问者所在的位置——我可以调用基本的 JavaScript 函数,例如 alert,但是当我尝试调用在 javaScriptFile.js 中声明的函数时,我得到了“NoSuchMethodError”

最佳答案

你可以这样做:

  1. 确保在 .dart 文件之前包含 JS,或者确保在从 Dart 运行脚本之前加载所有 JS 文件

  2. dart 文件的内容:


import 'dart:js';

void main() {
var ret = context.callMethod('myFunction', ['a', 'b']);
var inst = new JsObject(context['someClass'], ['instance']);
print(inst);
}
  1. 我的 JS 文件:

function myFunction() {
console.log(arguments);
}

function someClass(a) {
this.a = a;
}

这应该给你这样的输出

[object Arguments] // from console.log
[object Object] // from print()

问候,罗伯特

关于javascript - 从 Dart 调用我的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221238/

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