首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误在bookmarklet中,而不在javascript中

错误在bookmarklet中,而不在javascript中
EN

Stack Overflow用户
提问于 2013-02-21 12:16:21
回答 1查看 42关注 0票数 0

我正在管理Bookmarklet,当它点击时,在任何网站上创建一个笑脸。

Javascript可以完美地工作,但我不能让相同的脚本在bookmarklet(讨厌的输出)中完美地工作。

javascript jsfiddle

书签小程序jsfiddle

现在我要做的就是像这样安排这个bookmarklet

代码语言:javascript
复制
javascript:(function() {
// All javascript code

}
)();

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-21 13:36:00

变化

代码语言:javascript
复制
document.onmouseup=new Function("isdrag=false");

代码语言:javascript
复制
document.onmouseup = function() {isdrag=false};

原因:当您将所有代码包装在外部函数块中以创建bookmarklet时,"var isdrag“的作用域将从窗口级别更改,并变为该外部函数的局部范围。另一方面,new Function("isdrag=false")在窗口级别创建了一个新函数,脱离了当前作用域,新创建的函数中的"isdrag“无法访问您认为它正在访问的"var isdrag”。解决方案是通过不使用"new Function(...)“在与"var isdrag”相同的作用域内创建新函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14994457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档