1
我试图用插件生成器开发Firefox插件。使用page-mod(Firefox Addon)添加onclick事件到特定按钮
我想修改基于Web邮件的邮件编辑器。 (在以下代码中,我正在尝试使用Yahoo! Japan的邮件服务。)
我想在用户按下发送按钮时执行特定的代码。
这个插件的代码是:
main.js
var self = require("self");
var pageMod = require("page-mod");
pageMod.PageMod({
include: "*.mail.yahoo.co.jp",
contentScriptWhen: 'end',
contentScript: "document.getElementById('send_top').setAttribute('onclick', 'alert(\"blabla\")');"
});
在邮件编辑器页面的按钮:
<input id="send_top" class="inputbutton" type="submit" title="Submit an email"
value="Submit" name="action_msg_send" accesskey="9">
当用户 “提交” 按钮,我想显示对话框。
谢谢你的回答。 我用Scratchpad尝试过,然后成功显示对话框,但是当我在contentScript中编写代码时,它似乎无法正常工作。 (对话框未显示。) 您的示例已正确工作。 – 2012-04-13 06:20:35
寻找JS错误,可能会有一些迹象表明为什么你的代码不工作。例如,您尝试绑定click事件的元素在加载页面后可能不存在,因为它可能是由JavaScript创建的。 – canuckistani 2012-04-13 20:25:16
糟糕...我没有找到错误控制台,直到你指出它... 无论如何,正如你所说,组成页面似乎由JavaScript加载..错误控制台显示以下错误: TypeError:document.querySelector “#send_top”)为空 该插件似乎不加载邮件组成页面,但索引页。 合成页面有#_pg =合成URL中的锚点。当我删除这个锚点时,它会显示索引页面,当然在那里没有#send_top ID的元素。 – 2012-04-16 09:24:32