草庐IT

javascript - 在 Gmail 上下文小工具中获取用户名

我正在编写一个Gmail上下文小工具,为了在服务器上正确验证用户身份,我需要知道他们的完整电子邮件地址(john@googleapps.com)。我可以检索域(googleapps.com)但不能检索用户名。使用内容提取器,我可以获得电子邮件中的“收件人”字段,唯一的问题是如果同一域中有两个用户发送电子邮件(即john@googleapps.com和james@googleapps.com)。有什么想法吗? 最佳答案 您需要在上下文小工具中实现SSO(单点登录)。当加载上下文小工具时,它会传递用户的opensocialid。您必须在

javascript - 嵌套函数中的函数上下文 ("this")

当您在Javascript中调用顶级函数时,函数内的this关键字指的是默认对象(如果在浏览器中则为window)。我的理解是,调用函数作为方法是一种特殊情况,因为默认情况下它是在窗口上调用的(如JohnResig的书《JavaScript忍者的secret》第49页中所述)。事实上,以下代码中的两个调用是相同的。functionfunc(){returnthis;}//invokeasatop-levelfunctionconsole.log(func()===window);//true//invokeasamethodofwindowconsole.log(window.func

javascript - 如何定义 Node.js 应用上下文路径?

来自Java世界,其中基于Servlet的应用程序上下文路径是根据WAR文件名设置的,我试图了解在Node.js中定义上下文路径的最佳实践。有问题的Node应用程序没有在代码中定义上下文路径。例如,Express代码假定获取故事的请求具有路径为/story/1的URL。因此,JavaScriptUI代码会向http://host:port/story/1发出请求。.同样,对于连接到应用程序主页面的用户,他们会转到http://host:port/。.我想将用户看到的URL更改为http://host:port/myapp.问题是如何一致地将“myapp”定义为应用程序上下文。我正在考虑

javascript - 了解大括号的上下文 '{}'

我一直在审查其他人的代码,虽然ES2015总体上需要一些时间来适应,但是,我仍然坚持使用解构。以前,在Javascript中,花括号{}用于block或对象。例如//CurlyBracketsBlockIf(){...}//CurlyBracketsinObjvarobj={a:1,...}然而,在解构中,我们一次又一次地看到以下语法:leta=({a,b})=>{}我的问题是,参数容器是实际对象还是只是一个block?请说明以下是否与上述代码相同:leta=(a,b)=>{}编辑:我从阅读AxelRauschmayers关于解构的文章中了解到(到目前为止)我们只是在映射Prop。总是

递归 Hook 时 Javascript 丢失上下文

我开始研究JS的动态分析工具,我想不引人注意地分析整个环境。我基本上是在遍历各种上下文,深入研究对象,每次我遇到一个函数时,我都会Hook它。现在,除了在处理jQuery/prototype等库时它会中断之外,它工作得相对较好。这是我到目前为止的代码(尽我所能评论):var__PROFILER_global_props=newArray();//visitedproperties/***Hookintoafunction*@namethenameofthefunction*@fnthereferencetothefunction*@parenttheparentobject*/func

javascript - highcharts 打印图表/图表上下文菜单不可点击

我使用highchart一切正常,除了图表打印按钮不可点击,下面是我的Highcharts实现和引用图像。有什么想法、线索、建议、推荐、帮助吗?$('#chart_portfolio').highcharts({chart:{borderColor:'#ff0000',width:null,height:null},title:{text:false,x:-20//center},xAxis:{categories:portfolio_creation_date},yAxis:{title:{text:false},plotLines:[{value:0,width:1,color:'

javascript - 与 Meteor.bindEnvironment 一起使用后的功能上下文?

我最近遇到这段代码的问题:functiondoSth(){console.log(this);}constfWithMeteorEnv=Meteor.bindEnvironment(doSth);fWithMeteorEnv.call({});//expecttoseeaplainobjectinconsole我期望在控制台中看到一个普通对象,但不是,它是其他东西。似乎Meteor.bindEnvironment阻止返回的函数被另一个上下文调用。有什么办法可以解决这个问题吗? 最佳答案 我认为您想要实现的目标是不可能的,即您需要在调

javascript - 带有上下文参数 jquery 1.4 的克隆和实时函数

我有几个divHTML元素,我正在使用clone(true)选项克隆它,因为我也想复制事件。现在我的HTMLdivblock中有某些点击事件,而在创建事件时我也使用上下文参数,例如var$block=""+""+""+""+""+""+"");$(".wtp",$block).live('click',function(){alert("hi");})现在,当我使用clone(true)克隆此block时,即使我正在分配上下文参数,点击事件也不会触发。 最佳答案 .live()方法需要实际的选择器来匹配元素。试试这个:$(".tas

javascript - 使用原始上下文调用具有未知数量参数的 Javascript 函数

我目前正在使用Function.apply调用具有动态数量参数的函数,但我无权访问原始上下文,也不想自己设置上下文。我想要的是能够调用具有可变数量参数的函数,同时保持原始上下文。也许一些代码应该向您展示我正在尝试做的事情:functionMulticastDelegate(){varhandlers=[];this.event={subscribe:function(handler){if(typeof(handler)==='function'){handlers.push(handler);}},unsubscribe:function(handler){if(typeof(han

javascript - "this"上下文输出无法理解

我很难理解下面的代码。functionfoo(){console.log(this.a);}varobj={a:2,foo:foo};vara=4;obj.foo();setTimeout(obj.foo,100);setTimeout(obj.foo.bind(obj),100);它的输出为2、4、2,我无法理解。 最佳答案 第一种情况,obj.foo();foo中的this将指向obj,因为您已将该函数分配为该特定对象的属性。第二种情况,setTimeout(obj.foo,100);在setTimeout中,传递的函数将在窗口