【问题标题】:Incompatibility between Struts 2 and Chrome extensionStruts 2 和 Chrome 扩展不兼容
【发布时间】:2014-02-18 14:33:13
【问题描述】:

我编写了一个 Google-Chrome 扩展程序,在所有(经过测试的)网站上都可以正常运行,除了使用 Struts 2 框架构建的网站。

在我的扩展程序的“content.js”脚本中,我捕获了两个这样的事件:

document.addEventListener('mousedown', clickDownHandler, false);
document.addEventListener('mouseup', clickUpHandler, false);

这些事件处理程序都没有被调用过。

Struts2 是否与 Google-Chrome 扩展不兼容?

有什么想法吗?

【问题讨论】:

  • 检查该网站是否有一些旧的 struts-dojo 东西可能需要升级
  • 有什么问题..?

标签: java javascript google-chrome google-chrome-extension struts2


【解决方案1】:

我终于找到了我的问题。主机页面包含 html 框架。

默认情况下,我的 Chrome 插件不是为处理这些帧的事件而设计的。 对 Chrome 插件的 manifest.json 文件稍作修改即可解决此问题。 相关参数是:“all_frames”。

请参阅:developer.chrome.com/extensions/content_scripts 以获得解释。

【讨论】:

    【解决方案2】:

    框架与 chrome 扩展完全无关。 最后,所有框架的客户端最终都使用 DOM。 你肯定遇到了其他问题。

    【讨论】:

    • 我不同意你的看法。 Struts2 框架不仅生成一个 DOM,它还在浏览器中创建了大量的 Javascript。让我们把 Chrome 扩展问题放在一边。你能解释一下为什么在 Struts2 网站的控制台中键入以下 Javascript 行时不起作用: document.addEventListener('mousedown', function(){alert("duh")}, false);在其他站点中,单击页面时会显示 duh 警报框。似乎 Strut2 应用程序配置了一些不允许使用 document.addEventListener 的内容。
    • 我的意思是,这不是 Chrome 扩展问题,而是任何页面都可能发生的“常规”javascript 问题。例如,在您之前添加的另一个 addEventListener 处理程序可能会阻止默认和传播到其他处理程序。例如,请参见此处:stackoverflow.com/questions/1731459/…
    • 我终于找到了我的问题。主机页面包含 html 框架。默认情况下,我的 Chrome 插件不是为处理这些帧的事件而设计的。对 Chrome 插件的 manifest.json 文件稍作修改即可解决此问题。相关参数是:“all_frames”。有关说明,请参阅:developer.chrome.com/extensions/content_scripts。再次感谢您的支持
    猜你喜欢
    • 2014-11-28
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多