为什么复制和;粘贴dart2js'输出到控制台不起作用?

时间:2015-01-21 11:01:35

标签: dart dart2js

使用dart2js -o test.js test.dart

编译以下代码

打开test.js,复制其内容

打开浏览器,转到stackoverflow.com

打开开发工具,转到控制台选项卡

test.js的内容粘贴到控制台,点击输入

我希望它点击"提问#34;按钮,但它没有,为什么?

(我想这样做的原因是,我需要一些js,但我不想触摸js。)

// test.dart
import 'dart:html';
void main() {
  document.querySelector('#nav-askquestion').click();
}

1 个答案:

答案 0 :(得分:1)

我没有深入挖掘,但我觉得生成的代码会为脚本加载的事件注册自己,然后执行" main"作为事件处理程序我不太了解JavaScript和浏览器行为,足以理解这是如何工作的。

我通过在开发控制台中运行此代码来实现它的工作

(function runTest() {
  var s = document.createElement("script");
  s.type = "text/javascript";
  s.src = "test.js";
  document.body.appendChild(s);}
)();

其中test.jsdart2js生成的输出)文件与index.html位于同一目录中。

代码添加动态引用dart2js输出的脚本标记,并执行test.js中的代码。