在第三方js上通过ajax检测返回的消息

时间:2013-04-27 11:01:38

标签: javascript

我有一个嵌入其他地方的.js页面。此.js有一个按钮,用于触发服务器上的操作,并在特定div内的页面上返回成功消息。

如何检测此邮件何时到达并将其替换为我提供的其他div

1 个答案:

答案 0 :(得分:2)

This answer表明DOM更改事件在最前沿的浏览器中。如果您仅使用支持的浏览器,那么您可以倾听。

否则,您可能需要设置定期计时器(setTimeoutsetInterval)以定期检查div是否已更改,然后对此作出反应。

第三种可能性是找出外部脚本实际上如何使用传递给它的DOM节点。你可以用运气创建一个垫片对象。例如,如果外部脚本分配给innerHTML来设置内容,那么您可以将虚拟对象传递给外部脚本,并对正在设置的“假”innerHTML属性做出反应。这可能会使用defineProperty

第四种方法可以是找出外部脚本如何与服务器通信,并添加一个间接层。例如。如果外部脚本使用$.ajax,则将其替换为您自己的代码,该代码可以检测外部脚本请求的特定签名。

第五种方法是覆盖外部脚本的按钮单击功能。例如。如果按钮单击函数调用全局externalScriptButtonClick函数,则覆盖它。这可能只有在您对此代码具有可见性时才有效,而不是如果它是“私有”并且包含在闭包中,例如。