小编Geu*_*uis的帖子

如何扩展Array.prototype.push()?

我正在尝试扩展Array.push方法,以便使用push将触发回调方法,然后执行正常的数组函数.

我不太清楚如何做到这一点,但这里有一些我一直在玩的代码都失败了.

arr = [];
arr.push = function(data){

    //callback method goes here

    this = Array.push(data);
    return this.length;

}

arr.push('test');
Run Code Online (Sandbox Code Playgroud)

javascript arrays prototype

28
推荐指数
4
解决办法
3万
查看次数

基本对象/函数链如何在javascript中工作?

我正试图让jQuery风格的函数链接在我的脑海中.我的意思是:

var e = f1('test').f2().f3();
Run Code Online (Sandbox Code Playgroud)

我有一个例子可以工作,而另一个没有.我会发布以下内容.我总是想学习第一个原理的基本原理,以便我可以在它之上构建.到目前为止,我对链接的工作方式只有一个粗略而宽松的理解,而且我遇到了一些我无法智能排除故障的错误.

我知道的:

  1. 函数必须返回自己,又称"返回此";
  2. 可链接函数必须驻留在父函数中,也就是在jQuery中.css()是jQuery()的子方法,因此jQuery().css();
  3. 父函数应该返回自身或自身的新实例.

这个例子有效:

var one = function(num){
    this.oldnum = num;

    this.add = function(){
        this.oldnum++;
        return this;
    }

    if(this instanceof one){
        return this.one;    
    }else{
        return new one(num);    
    }
}
var test = one(1).add().add();
Run Code Online (Sandbox Code Playgroud)

但是这个没有:

var gmap = function(){

    this.add = function(){
        alert('add');

        return this;    
    }   

    if(this instanceof gmap) {
        return this.gmap;   
    } else{
        return new gmap();  
    }

}
var test = gmap.add();
Run Code Online (Sandbox Code Playgroud)

javascript methods method-chaining chaining

26
推荐指数
1
解决办法
3万
查看次数

javascript - 检测Google Analytics是否已加载?

我正在开发一个项目,该项目会在Google Analytics自定义变量中存储一些信息.我正在构建的脚本需要检测GA是否已经加载,然后才能将数据推送到它.该项目旨在适用于使用GA的任何类型的网站.问题是可靠地检测GA是否已完成加载并且可用.

这里有几个变化:

  1. 有多种加载GA的方法.从Urchin开始的旧脚本到最新的异步脚本.其中一些是内联的,一些是异步的.此外,有些网站会像我工作那样自定义加载GA的方法.我们使用YUI getScript来加载它.

  2. 变量名称.在某些脚本中,分配给GA的变量名称是pageTracker.在其他人,它_gaq.然后是网站可用于实现GA的自定义变量名称的无限.

那么,是否有人想知道什么是可靠的方法来检查页面上是否正在使用Google Analytics,以及它是否已加载?

javascript google-analytics

26
推荐指数
7
解决办法
4万
查看次数

html5下载属性的任何后备客户端解决方案?

对于不支持HTML5"下载"属性的浏览器,是否有客户端备用选项?

目前,只有Chrome才能正确支持此功能.Firefox有支持,但从一个迟钝的观点来看,它应该只针对"安全"问题来自同一域的文件.

处理此问题的正确方法是让后端服务器使用Content-Disposition标头代理请求的文件,但在这种情况下,它很可能不是一个选项.

Firefox的"安全影院"也不是很有用,因为它是设置代理的任意机制.

我正在查看https://github.com/dcneiner/Downloadify,但只是意识到它只支持文件创建,而不支持远程文件访问.

javascript html5

26
推荐指数
2
解决办法
9014
查看次数

S3在不同帐户的桶之间移动文件?

我正在为拥有2个独立AWS账户的客户做一些工作.我们需要将其中一个S3帐户的存储桶中的所有文件移动到第二个帐户的新存储桶中.

我们认为s3cmd允许这样,使用以下格式:

s3cmd cp s3://bucket1 s3://bucket2 --recursive
Run Code Online (Sandbox Code Playgroud)

但是,这只允许我使用一个帐户的密钥,而我无法指定第二个帐户的帐户.

有没有办法在不下载文件并将其再次上传到第二个帐户的情况下执行此操作?

amazon-s3 s3cmd

25
推荐指数
1
解决办法
4万
查看次数

Mac OS中Firefox扩展的位置?

在Mac OS X中,Firefox的安装扩展位置在哪里?

firefox

24
推荐指数
1
解决办法
3万
查看次数

Firefox 3使用display:inline-block为spans添加间距

在我的测试中,我有2个跨度都设置为显示:内联块,带有可见性边框.Firefox在每个跨度之间渲染空间.甚至设置margin:0; padding:0; 没有做任何事来解决这个问题.我设想内联span元素显示时的期望:inline-block是2个跨度互相渲染,就像你向左或向右浮动2个div一样.我发现的唯一"修复"是向空间添加浮动:向左或向右,但这违背了我最初尝试不使用浮动的目的.有任何想法吗?

<style>
span{
    border:2px solid #000;
    display:inline-block;
    padding:0;
    margin:0;
}
</style>
<span>Test</span>
<span>Test2</span>
Run Code Online (Sandbox Code Playgroud)

css firefox

23
推荐指数
2
解决办法
7635
查看次数

在ubuntu服务器上全局添加目录到路径

如何在不编辑本地配置文件的.bash_profile或.bashrc的情况下将我自己的目录添加到PATH?

我需要从登录的任何用户普遍访问目录中的脚本.

ubuntu path

21
推荐指数
3
解决办法
2万
查看次数

如何使用node.js,Express和knox将文件从浏览器上传到Amazon S3?

我正在尝试找到一些使用node.js,Express和knox的示例代码.

Knox的文档仅提供了如何上传已存储在文件系统中的文件的明确示例.https://github.com/learnboost/knox#readme

此外,还有一些关于如何直接上传文件以表达并保存到文件系统的简单教程(即使在Express本身中).

我找不到的是一个示例,它允许您将客户端上载上传到节点服务器,并将数据直接流式传输到S3,而不是先存储在本地文件系统中.

有人能指出我的主旨或其他包含此类信息的例子吗?

upload amazon-s3 node.js express

21
推荐指数
1
解决办法
2万
查看次数

Javascript - 对象初始化程序?

我已经意识到你可以在对象中自动运行一个属性,如下所示:

var obj = {

    init:(function(){ alert('loaded');})();

}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此方法作为对象的初始化程序.我遇到的问题是将对'obj'的引用传递给init属性.我怀疑它会产生错误,因为obj还没有在浏览器中完全构建.我正在尝试执行以下操作,但未成功.如果有办法做到这一点,我很想知道如何做到这一点.

var obj = {
    prop:function(){ alert('This just ran.'); },
    init:(function(){ obj.prop(); })();
}
Run Code Online (Sandbox Code Playgroud)

javascript initialization

20
推荐指数
2
解决办法
4万
查看次数