我有一个嵌入其他地方的.js页面。此.js有一个按钮,用于触发服务器上的操作,并在特定div
内的页面上返回成功消息。
如何检测此邮件何时到达并将其替换为我提供的其他div
?
答案 0 :(得分:2)
This answer表明DOM更改事件在最前沿的浏览器中。如果您仅使用支持的浏览器,那么您可以倾听。
否则,您可能需要设置定期计时器(setTimeout或setInterval)以定期检查div是否已更改,然后对此作出反应。
第三种可能性是找出外部脚本实际上如何使用传递给它的DOM节点。你可以用运气创建一个垫片对象。例如,如果外部脚本分配给innerHTML
来设置内容,那么您可以将虚拟对象传递给外部脚本,并对正在设置的“假”innerHTML
属性做出反应。这可能会使用defineProperty。
第四种方法可以是找出外部脚本如何与服务器通信,并添加一个间接层。例如。如果外部脚本使用$.ajax
,则将其替换为您自己的代码,该代码可以检测外部脚本请求的特定签名。
第五种方法是覆盖外部脚本的按钮单击功能。例如。如果按钮单击函数调用全局externalScriptButtonClick
函数,则覆盖它。这可能只有在您对此代码具有可见性时才有效,而不是如果它是“私有”并且包含在闭包中,例如。