【问题标题】:Jquery - Simulating click button doesn't trigger functionJquery - 模拟点击按钮不会触发功能
【发布时间】:2012-03-08 15:44:18
【问题描述】:

好的,

所以我一直在使用 firebug 以及我编写的一些扩展来在我经常使用的网站上创建快捷方式。有些事情我不明白为什么它不起作用或为什么不可能:

示例代码:

<input type="button" onclick="addNewRow()" id="addRow"/>
//This will add a new row to the current table.
//The function is defined by the website (not my function)

使用萤火虫时:

jQuery("#addRow").click();
//This will simulate the button click, and will automatically add the new row.

使用谷歌浏览器扩展时:

jQuery("#addRow").click();
//It doesn't add the new row.

为什么一旦点击按钮,扩展就无法执行该功能,为什么firebug运行没有问题?

这正常吗?这是一项安全功能吗?还是我做错了什么?

我知道出于安全原因我无法访问网站中的现有功能,但为什么按钮模拟不会为我触发?

【问题讨论】:

  • 我的问题是我可以使用 firebug 获取代码来触发该功能,但是在将其用作扩展时我无法让它工作。 jQuery 选择有效,但从未触发该功能。我相信如果我在 Firefox 中使用扩展(使用 userscripts/greasymonkey)也会出现同样的问题,所以我可以在 firebug 中完成我想要的,但我宁愿将它放在扩展中,这样我就不必复制和粘贴所有代码时间。
  • 我尝试使用 jquery 触发器选项在 Firefox 中运行我的扩展,但它也不起作用。
  • ahhhhhhhhhhhhh 我遇到了同样的问题,这让我发疯了。 O_O
  • 经过大量阅读,谷歌扩展似乎无法让您访问网站的现有功能。不过,这并不能解释为什么它可以在调试控制台中工作。

标签: jquery function button triggers click


【解决方案1】:

试试:

jQuery("#addRow").trigger("click");

【讨论】:

  • 不幸的是,触发器在扩展中也不起作用。它的工作原理是我只需打开 chrome 控制台并将其添加到那里(就像萤火虫一样)
  • 我需要在 manafesto 文件中启用任何设置吗?
【解决方案2】:

您使用的是哪个版本的 Chrome?有一个新的 Chrome 扩展安全功能可以阻止内联 javascript。你可以在这里阅读更多 : http://browserfame.com/512/chrome-extension-content-security-policy

【讨论】:

    【解决方案3】:

    在 chrome 上,我宁愿使用 WebKit 的开发者控制台而不是 firebug 扩展。

    【讨论】:

    • 是的,我注意到 firebug 在 chrome 上的效果不如在 firefox 上。我实际上是在 firefox 上运行 firebug。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多