获取对使用Tampermonkey使用javascript创建的元素的引用
getting a reference to an element created with javascript using Tampermonkey
我正在使用Tampermonkey来获取以前使用javascript创建的元素。用于创建元素的代码如下所示:
a = document.getElementById("iframe").contentDocument.createElement("canvas")
我试过
var canvas = document.getElementById("iframe").contentDocument.getElementsByTagName("canvas")[0];
这个:
var canvas = document.getElementsByTagName("canvas")[0];
由于我不知道创建元素的确切时间,我使用了异步循环
for (var i = 0; i<2000; i++){
setTimeout(function(){
var canvas = document.getElementById("iframe").contentDocument.getElementsByTagName("canvas")[0];
if (typeof canvas !== 'undefined') {
console.log("HAS CANVAS");
console.log(i);
}else{
console.log("UNDEFINED");
}
},1);
}
但这总是返回undefined。
你知道创建画布元素引用后如何获得它吗?
我使用了异步循环
它并不是真正的异步循环。您刚刚创建了2000个超时,这些超时将尽快执行,因为超时值为1。
我认为在你的情况下,间隔时间是合适的。
var intervalId = setInterval(function(){
var canvas = document.getElementById("iframe").contentDocument.getElementsByTagName("canvas")[0];
if (typeof canvas !== 'undefined') {
console.log("HAS CANVAS");
console.log(i);
clearInterval(intervalId);
}else{
console.log("UNDEFINED");
}
}, 1000);
它会在一秒钟(1000毫秒)内检查画布,直到找到为止。
相关文章:
- 在运行时创建元素时移到一边时出错
- 如何在动态创建元素的内联onclick事件中传递对象
- 在 jquery 中创建元素
- 当我动态创建元素时,选择的插件不起作用
- HTML javascript函数来创建元素
- 从外部 js 脚本创建元素并插入到 html 中
- 在 d3 中为数据列表创建元素
- 如何在循环中创建元素并将其添加到DOM中
- JQuery-创建元素并将其连接到其他html
- 创建元素更好还是只在html上准备好它们
- 挂钩文档.使用函数原型创建元素
- Javascript动态创建元素和onclick函数
- 从任何jquery选择器字符串创建元素的最有效方法
- 动态创建元素和添加onclick事件不起作用
- 在javascript中创建元素时,CSS转换规则固有地被覆盖
- 如何在特定的HTML标记下用JavaScript创建元素
- 如何根据我正在读取的节点的元素名称创建元素
- 使用Jquery在元素中创建元素
- 使用JavaScript创建元素并使用它
- 将托管 Bean 与 javascript 结合使用来创建元素