我正在管理Bookmarklet,当它点击时,在任何网站上创建一个笑脸。
Javascript可以完美地工作,但我不能让相同的脚本在bookmarklet(讨厌的输出)中完美地工作。
javascript jsfiddle
书签小程序jsfiddle
现在我要做的就是像这样安排这个bookmarklet
javascript:(function() {
// All javascript code
}
)();请建议如何管理书签脚本,以便我可以拖放笑脸。
发布于 2013-02-21 13:36:00
变化
document.onmouseup=new Function("isdrag=false");至
document.onmouseup = function() {isdrag=false};原因:当您将所有代码包装在外部函数块中以创建bookmarklet时,"var isdrag“的作用域将从窗口级别更改,并变为该外部函数的局部范围。另一方面,new Function("isdrag=false")在窗口级别创建了一个新函数,脱离了当前作用域,新创建的函数中的"isdrag“无法访问您认为它正在访问的"var isdrag”。解决方案是通过不使用"new Function(...)“在与"var isdrag”相同的作用域内创建新函数。
https://stackoverflow.com/questions/14994457
复制相似问题