首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使javascript在

如何使javascript在
EN

Stack Overflow用户
提问于 2022-04-07 03:13:19
回答 1查看 241关注 0票数 0

我在做一个颤栗的网络项目。web/index.html文件正在注入一个JavaScript脚本,该脚本可以简化为:

代码语言:javascript
复制
<script>
  window['dataLayer'] = [];
</script>

所以在我的颤振代码中,我可以:

代码语言:javascript
复制
@JS()
import 'package:js/js.dart';

@JS('dataLayer.push')
external void push(data);

push(myData);

myData推送到window.dataLayer数组中。

但是,在测试中,当我运行

代码语言:javascript
复制
flutter test --platform chrome

我搞错了

代码语言:javascript
复制
TypeError: Cannot read properties of undefined (reading 'push')

当我打电话的时候

代码语言:javascript
复制
push(myData);

因为从来没有创建过window['dataLayer']

如何像在index.html中那样注入一些javascript脚本

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-06 01:19:44

可以在运行测试时加载自定义HTML文件,请参阅包testtest

如果您的测试文件名为folder/my_test.dart,那么您可以创建一个名为(folder/my_test.html)的html文件:

代码语言:javascript
复制
<!doctype html>
<html>

<head>
  <title>Custom HTML file title</title>
  <link rel="x-dart-test" href="my_test.dart">
  <script src="packages/test/dart.js"></script>
  <script>
    window['dataLayer'] = [];
  </script>
</head>

</html>

这个StackOverflow问题

然后你就可以跑

代码语言:javascript
复制
dart test --platform chrome

但是,只有dart test而不是flutter test才支持这一点,请参阅本期。在它中,他们建议编写一个集成测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71775928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档