bookmarklet中的错误而不是javascript中的错误

时间:2013-02-21 04:16:21

标签: javascript bookmarklet

我正在管理Bookmarklet,当它点击时会在任何网站上创建一个笑脸 Javascript是完美的工作,但我不能使相同的脚本完美地从bookmarklet(恼人的输出)。

javascript jsfiddle
bookmarklet jsfiddle

现在我所做的只是安排像

这样的书签
javascript:(function() {
// All javascript code

}
)();

请建议如何管理bookmarklet脚本,以便我可以拖放笑脸。

1 个答案:

答案 0 :(得分:0)

变化

document.onmouseup=new Function("isdrag=false");

document.onmouseup = function() {isdrag=false};

原因:当您将所有代码包装在外部功能块中以创建书签时," var isdrag"从窗口级别更改并变为该外部函数的本地。另一方面,new Function("isdrag=false")在窗口级别创建一个新函数,转义当前范围,并且#34; isdrag"因为新创建的函数无法访问" var isdrag"你认为它正在访问。解决方案是在与#34; var isdrag"相同的范围内创建新函数。不使用"新功能(...)"。