草庐IT

javascript - 从 for-in 循环获取属性名称背后的简单理论?

首先,我想说我在理论上很厉害。我不喜欢抽象。在尝试使用它们之前,我想知道它们是如何工作的。我一直在到处寻找获取for-in循环的属性名称(而不是值)背后的简单理论。我将在代码中演示它,希望有人可以解释它是如何工作的……varobj={one:1,two:2,three:3};//Abasicobjectinstantiatedwith3publicproperties.for(varpropinobj){console.log(prop);//logs"one","two"and"three"???}我认为它会将prop变量评估为1、2和3,但它会记录实际的属性名称。我知道obj[pr

javascript - 如何从必须在目标页面范围内运行的代码调用 Greasemonkey 的 GM_ 函数?

我在这里问了一个问题并得到了答案:HowtocallthisYouTubefunctionfromGreasemonkey?该代码有效并向页面添加了一个按钮,用于捕获视频时间。但是,关键部分必须在目标页面范围内运行——其中Greasemonkey的GM_功能不可用。我想用GM_setValue()来记录视频时间。如何从按钮的click处理程序中调用GM_setValue()?这里是thecompletescript(right-clicktosave)的相关部分:......//--Onlyruninthetoppage,notthevariousiframes.if(window.t

javascript - 如何从 Backbone.listenTo 中查找触发事件?

在Backbone中,我正在使用新的Backbone.listenTo事件。我的一个实例将监听器附加到三个不同的事件,例如:this.listenTo(this._Collection,'resetaddchange',this._setCollection);它在应该的时候被适本地调用并且那里没有问题。我不知道的是如何找出触发了哪个事件。我可以使用以下方式访问e参数:_setCollection:function(e){//Dofunstuff}问题在于e参数仅发送集合的副本,而没有提及实际触发的事件。我试过e.type和e.target但这些对象不存在。这是来自Chrome开发工具

javascript - 从 url 中删除所有空值

我想从url中删除所有空值:vars="value1=a&value2=&value3=b&value4=c&value5=";s=s.replace(...???...);alert(s);预期输出:value1=a&value3=b&value4=c我只需要考虑URL的查询部分。 最佳答案 像这样:s=s.replace(/[^=&]+=(&|$)/g,"").replace(/&$/,"");也就是说,删除一组一个或多个后跟等号和符号或字符串结尾的非等号/非&号字符。然后删除任何剩余的尾随符号。演示:http://jsfidd

javascript - 使用不显眼的 javascript 从单个事件调用多个函数

我有一个输入元素改变时我想调用多个函数$('#test').change(function1,function2);现在的功能只是现在的警报varfunction1=function(){alert('a');};varfunction2=function(){alert('b');};只有第二个函数被调用。我知道这一点是因为警报和刹车点。我知道纠正此问题的一种方法是从另一个函数调用function1和function2,但我想避免这种情况。 最佳答案 我不喜欢使用匿名函数,所以我会创建一个新函数并将所有工作放在其中。$('#tes

javascript - 在文档准备好之前从服务器获取 AJAX 数据(jQuery)

我想从服务器获取一些数据并将其写入JavaScript中的全局数组。然后在准备好文档时,我想使用这个数组来创建一些新元素(选项)。我应该拥有包含此数据的全局数组,因为在首次加载后,客户端可以使用此数据修改用户界面。$(document).ready(function(){UseAjaxQueryForFillGlobalArray();MakingInterfaceUsingGlobalArray();});但我有奇怪的行为,当我调试页面时,我可以看到方法MakingInterfaceUsingGlobalArray首先工作,就在我通过AJAX使用方法UseAjaxQueryForFi

javascript - jquery 只从开发工具控制台返回第一个输入元素

我有以下html:................我想选择所有的输入元素,但是当我输入时:$("input")在chromedevtools控制台中,我只得到第一个元素:我可以输入什么来获得输入元素的完整列表? 最佳答案 这不是一个愚蠢的问题。这实际上是Chrome开发者工具带来的困惑行为。这里发生的事情是您没有包含JQuery。GoogleChrome在Chrome开发者工具中提供了变量/函数$。它与jQuery不同。这是关于它的文档:https://developers.google.com/chrome-developer-t

javascript - 使用 javascript 从数组中存在的字符串中删除双引号

我有一个这样的数组:数组=["苹果","橙子","梨"]我想从数组中每个字符串的开头和结尾删除双引号。数组=[苹果、橘子、梨]我尝试遍历数组的每个元素并进行如下字符串替换for(vari=0;i但它并没有去掉字符串开头和结尾的双引号。任何帮助将不胜感激。非常感谢。 最佳答案 我在您的问题中看到的唯一"是数组中包含的字符串文字的引号。["apple",...]^^你可能不知道Astringliteralistherepresentationofastringvaluewithinthesourcecodeofacomputerprog

javascript - PhantomJs:我可以从具有动态设置内容的页面访问相关 Assets 吗?

给定以下文件结构:project-folder|-images/||-foo.png||-script.js还有类似下面的Phantom脚本:varpage1=require("webpage").create(),page2=require("webpage").create();page1.content="";page2.content="";//givetheimagessometimetoloadsetTimeout(function(){page1.render("pdf1.pdf");page2.render("pdf2.pdf");phantom.exit();},10

javascript - 使用 AJAX 从 jQuery 向 Rails 服务器提交表单在 IE11 中不起作用

我正在尝试使用AJAX将一些数据从from上传到Rails服务器。该表单包含两个文本输入和一个文件输入。这是我的submit事件处理程序的样子:$("form").on("submit",function(event){event.preventDefault();$.ajax({url:$(this).attr("action"),type:$(this).attr("method"),data:newFormData(this),contentType:false,processData:false});});这在除IE之外的所有浏览器中都可以正常工作。当我尝试在IE中提交表单时,