javascript - 从 Dart 创建 js 对象

标签 javascript dart dart-js-interop

我有需要翻译成 Dart 的 js 代码:

(function() {
    var s, e;
    s = document.createElement("script");
    s.src = “//someurl.com/somefile.js";
    s.async = true;
    e = document.getElementsByTagName("head")[0];
    e.insertBefore(s, e.firstChild);
    this.OBJECT = this.OBJECT || {};
    this.OBJECT.array = this.OBJECT.somearray || [];
})();

OBJECT.somearray.push({
    val1 : “foo",
    val2 : “bar"
});

将脚本嵌入头部的基本部分我是这样做的:

ScriptElement scr = new ScriptElement()
  ..src = "//someurl.com/somefile.js";
  ..async = true;
querySelector('head').append(scr);

但我不知道如何正确检查 OBJECT 和 OBJECT.somearray 是否存在于 somefile.js 中并在其中推送一个对象项。

最佳答案

dart:js您可以使用以下命令检查是否存在全局变量:

bool exist = context.hasProperty('OBJECT');
if (exist) {
  final o = context['OBJECT'];
  if (!o.hasProperty('somearray')) {
    o['somearray'] = new JsArray();
  }
}

关于javascript - 从 Dart 创建 js 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20586381/

相关文章:

javascript - 如何在 v-for 中的特定项目的 vue js 中切换类

dart - 如果原来的 JS 有很多功能,如何 dart 来启动它们?

javascript - 删除给定字符之前的多余空格

javascript - 自动完成 : how to get automatically value on focus if no values selected

flutter - 如何转换List <Object> flutter

dart - Dart 是否支持编写嵌入式 DSL?

javascript - Flutter Webview 与 Javascript 的双向通信

dart - 返回匿名JS函数,该函数从Dart返回javascript纯对象

dart - 使用 Dart :js to stream audio through the SoundCloud JavaScript API

javascript - 在js动画中通过鼠标滚轮加速css的skew()