Javascript:点击注入的按钮
Javascript: Click on an injected button?
我的问题可能看起来很奇怪,但我希望我的javascript代码点击我之前用相同脚本在页面中注入的按钮。我尝试了这样的事情:
var injectionarea = document.getElementById('whereIwant');
injectionarea.innerHTML += "<button id='"my_button'">Test</button>";
document.getElementById('my_button').onclick = function() {
//my stuff
};
my_button.click();
但它返回一个未定义的元素...
您尝试执行的操作存在一些问题。作为一般规则,将 dom 控件作为字符串注入可能会产生一些奇怪的事件(例如,容器元素中的任何子节点都可能恢复到原始页面状态)。因此,最好通过document.createElement函数创建对象。
无论如何,在您的情况下,您只需要"等待"dom读取您的注入,解析它并创建元素(如上所述,您应该自己做的事情)。
因此,添加 setTimeout(如以下示例所示)将使其正常工作,即使它不是我希望看到的最干净的代码段:
var injectionarea = document.getElementById('whereIwant');
injectionarea.innerHTML += "<button id='"my_button'">Test</button>";
setTimeout(function(){
document.getElementById('my_button').onclick = function() {
//my stuff
};
my_button.click();
},0);
永远记住,JS是单线程的,所以你所做的任何需要由DOM解析的编辑,在你释放你的工作线程之前,在DOM本身中都不可用。
试试这个:
function a(){
var injectionarea = document.getElementById('whereIwant');
injectionarea.innerHTML += "<button id='"my_button'" onclick='"doClick()'">Test</button>";
}
function doClick(){
//my stuff
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 多个单选按钮组相互干扰
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- Javascript按钮下拉列表
- jquery试图按名称获取按钮位置
- 注入Javascript以选择具有指定值的所有单选按钮
- Javascript按钮href注入
- 在注入的html按钮上启动弹出窗口
- 按下按钮时动态注入脚本
- 如何使用 Chrome 扩展程序向网页注入按钮
- 将注入的按钮从内容脚本调用到后台.js
- Javascript:点击注入的按钮
- 从c#中的代码后面向链接按钮注入JavaScript
- Parallax脚本(通过代码注入注入Enjin)Can't单击按钮
- Safari扩展:如何仅在单击工具栏按钮后注入内容脚本
- 注入按钮到网站(Chrome扩展内容脚本)
- 如何在firefox扩展中从注入的HTML按钮触发事件
- 如何注入将执行函数的按钮
- 如何注入html到网页上的chrome扩展按钮点击