为什么greasemonkey脚本无效?
点击按钮用firebug查看错误信息提示:
get_toodledo_list is not defined
var get_toodledo_list = function(){
alert(1);
}var my_div=document.createElement("div");
my_div.innerHTML= '<button onclick="get_toodledo_list();" style="position:fixed;right:0;bottom:0;">list</button>';
document.getElementsByTagName('body')[0].appendChild(my_div);
点击按钮用firebug查看错误信息提示:
get_toodledo_list is not defined
var get_toodledo_list = function(){
alert(1);
}var my_div=document.createElement("div");
my_div.innerHTML= '<button onclick="get_toodledo_list();" style="position:fixed;right:0;bottom:0;">list</button>';
document.getElementsByTagName('body')[0].appendChild(my_div);
该脚本js中代码如下:
// ==UserScript==
// @name hello
// @namespace toodledo
// @include http://www.baidu.com/
// @version 1
// ==/UserScript==var get_toodledo_list = function(){
alert(1);
}var my_div=document.createElement("div");
my_div.innerHTML= '<button onclick="get_toodledo_list();" style="position:fixed;right:0;bottom:0;">list</button>';
document.getElementsByTagName('body')[0].appendChild(my_div);
点击右下那个list的按钮,如果你已经打开了firebug并切换的控制台就会看到get_toodledo_list没定义的错误
试下显式的把它们定义为window对象的属性:
window.get_toodledo_list = function(){}
http://wiki.greasespot.net/XPCNativeWrapperExpando Properties do not work on XPCNativeWrappers.
刚好onclick就是一个Expando Properties。按照它示例的正确代码,稍作修改就行。