gpt4 book ai didi

firefox - 删除 Dart 文件的链接会杀死应用程序

转载 作者:行者123 更新时间:2023-12-01 08:30:05 25 4
gpt4 key购买 nike

我正在尝试在 Firefox (v22.0) 中运行我的 Dart 应用程序。这是应用程序的主页:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My 1st Dart App</title>
<link rel="stylesheet" href="assets/myapp/myapp/myapp.css">
</head>
<body>
<h2>Push the button!</h2>

<div id="sample_container_id">
<input type="button" id="someButton" value="Some Button!" />
</div>

<script type="application/dart" src="myapp.dart"></script>
<script src="packages/browser/dart.js"></script>
</body>
</html>

当我按原样运行时,我的应用程序运行良好,并且完全按照我的意愿运行。但是如果我去掉第一个 <script/>标签 ( <script type="application/dart" src="myapp.dart"></script> ),没有任何 Dart 代码在运行时执行。例如,我在 HTML 按钮上配置了一个点击处理程序,如下所示:

void main() {
querySelector("#someButton").onClick.listen((e) => window.alert("Hello!"));
}

如果我删除第一个 <script/>标签,然后当我点击 someButton什么都没有发生。

(1) 为什么去掉第一个<script/>标记“杀死” Dart 代码? 我正在使用 pub build生成交叉编译的 JavaScript,那么 Firefox 为什么要关心我的 Dart 源文件(因为 FF 22.0 本身不支持 Dart)?

(2) Dart 有推荐的<DOCTYPE>声明,比如transitional等?

最佳答案

简短回答:查看 dart.js 以了解发生了什么。

长答案:Dart.js 将寻找脚本:application/dart,如果它在带有 DartVM(即:Dartium)的浏览器上运行,它将启动它。否则它将获取脚本文件 myapp.dart 并将文件更改为 myapp.dart.js 并运行它。通过删除该脚本标记,您将删除 dart.js 查找的 dart 脚本,因此您的 javascript 编译版本永远不会插入到您的文档中。

关于 DOCTYPE none 是特别推荐的,但是因为 Dart 通常是为最新版本的浏览器设计的,实际上在适当的地方使用 HTML5 标签可能最好使用 HTML5 DOCTYPE,就像您在示例中一样。

关于firefox - 删除 Dart 文件的链接会杀死应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746818/

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