我正在尝试将js文件添加到页面中。如何检查该文件是否已加载?
javascript ga.js文件:
this.event = function (value) {
this.value = value;
this.method = function() {
return "sometext";
};
};
飞镖码:
ScriptElement ga = new ScriptElement()
..src = "/ga.js"
..async = true;
querySelector('body').append(ga);
bool exist = context.hasProperty('event');
JsObject event = null;
if (exist) {
print("event exist");
} else {
print("there is no event yet");
}
答案 0 :(得分:4)
您只需向HTML中的任何onload
元素添加script
个事件即可。
ga.onload = function(ev) { alert('loaded!') };
由于这是native HTMLScriptElement
behaviour,因此它应与Dart完美结合。
答案 1 :(得分:1)
我现在找到的方法就是使用Future。
void checkEvent() {
bool exist = context.hasProperty('event');
JsObject event = null;
if (exist) {
print("event exist");
} else {
print("there is no event yet");
var future = new Future.delayed(const Duration(milliseconds: 10), checkEvent);
}
}
但是,如果我现在已经在该javascript文件中存在'事件'了。也许有一些方法可以检查何时在html中加载javascript?
答案 2 :(得分:0)
大多数使用Chrome,Firefox甚至IE等开发者工具的浏览器都有一个名为Network的标签。在这些面板/选项卡中,您可以搜索有问题的文件。如果它已加载,它将在该视图中。
只要JavaScript识别/尝试加载.js
文件,console
通常会告诉您它是否无法加载文件。
如果您计划在文件加载后在页面上执行某些操作,那么您可能希望按照Niels Keurentjes
建议的内容执行更多操作。
更多信息: