标签: javascript-framework

Prototype JS吞下了dom:loaded和ajax回调中的错误?

我无法弄清楚为什么原型会在dom:loaded事件和AJAX处理程序中抑制错误消息.

鉴于以下HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Conforming XHTML 1.1 Template</title>
        <script type="text/javascript" src="prototype.js"></script>
        <script type="text/javascript">
            document.observe('dom:loaded', function() {
                console.log('domready');
                console.log(idontexist);
            });
        </script>
    </head>
    <body>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

domready事件触发,我在控制台中看到日志,但没有任何错误的迹象.如果你将console.log(idontexist);线移出处理程序,你就得到了

idontexist没有定义

控制台中出错.我觉得有点怪异,在其他事件处理程序,如"点击",你会得到错误信息,似乎这仅仅是dom:loaded有这个问题.

AJAX处理程序也是如此:

new Ajax.Request('/', {
    method: 'get',
    onComplete: function(r) {
        console.log('xhr complete');
        alert(youwontseeme);
    }
});
Run Code Online (Sandbox Code Playgroud)

你不会看到任何错误.这是使用prototype.js 1.6.1,我在文档中找不到这种行为的任何迹象,也没有在这些处理程序中启用错误报告的方法.

我尝试使用FireBug的调试器逐步执行代码,当它遇到dom:loaded处理程序中缺少的变量时,它似乎跳转到名为K的第53行上的函数:

K: function(x) { return x } 
Run Code Online (Sandbox Code Playgroud)

但是怎么样?为什么?什么时候?我在那里看不到任何try/catch块,程序流如何在那里结束?

我知道我可以通过dom:ready在try/catch块中包装我的处理程序来使错误可见,但这不是一个非常舒服的选择.同样适用于为AJAX调用注册全局onException处理程序.

为什么它甚至可以抑制错误?有人遇到过这个吗?

javascript error-handling javascript-framework prototypejs

7
推荐指数
1
解决办法
1986
查看次数

是否有一个包含丰富的常用功能的javascript库?

我发现在大多数知名的javascript库中都缺少许多高级函数,比如jquery,YUI等.以字符串操作为例,startsWith,endsWith,contains,lTrim,rTrim,trim,isNullOrEmpty ......等.这些功能实际上非常常见.

我想知道是否存在填充这些空白(包括但不限于字符串操作)的javascript库的javascript库/插件?

如果库不覆盖原型会很棒.

javascript javascript-framework high-level

7
推荐指数
1
解决办法
719
查看次数

为什么javascript向后兼容故障?

在Coders工作中,Douglas Crockford讨论了浏览器中的错误如何导致Javascript成为一种复杂,笨重的语言,并且修复它是一个问题22.在使用DOM脚本和Ajax 开始JavaScript时, Christian Heilmann说类似的"各种各样的用户代理,具有不同的技术细节[...]对JavaScript来说是一个巨大的危险."

为什么JS没有破解新版本?语言设计中是否存在固有的东西,其中向后兼容性变得必须?

更新
为什么javascript不能并行运行多个引擎?类似于.NET在同一台机器上运行版本2,3和4的方式.

javascript javascript-framework

7
推荐指数
2
解决办法
1688
查看次数

当函数返回结果和JavaScript中的函数时

我看到很多函数返回的不是结果而是函数.下面的示例显示函数getWindow返回函数.为什么它不能只返回变量"赢"?当我返回结果和功能时?谢谢.

var A = function(){};
A.prototype=
{
   getWindow : function()
   {
        var win = new B.window();
        return (
                this.getWindow = function()
                {
                    return win;
                })();

   }
}
Run Code Online (Sandbox Code Playgroud)

javascript javascript-framework

7
推荐指数
1
解决办法
253
查看次数

如何在backbone.js中创建具有多种模型类型的集合?

我试图让这个工作,但我很努力.当我检查success回调时,我的收藏结果为空fetch.它没有给我任何明显的错误parse.这是我的代码:

我的收藏:

VOR.Collections.GridItems = Backbone.Collection.extend({
        model : VOR.Models.GridItem,
        url: "assets/data/grid.json",
        parse: function(response){
            var self = this;

            _.each(response, function(griditem){
                switch(griditem.type){
                    case "news":
                        self.add(new VOR.Models.NewsGridItem(griditem));
                        break;
                    default:
                        self.add(new VOR.Models.StandardGridItem(griditem));
                        break;
                }
            });
        }
});
Run Code Online (Sandbox Code Playgroud)

这就是我创建集合的方式:

griditems = new VOR.Collections.GridItems();

griditems.fetch({
    error: function(e) {console.log(e);},
    success: function(msg) {
        console.log(msg)
    });
Run Code Online (Sandbox Code Playgroud)

当我控制日志时,msg我得到:对象{length = 0,models = [0],_ byId = {...},更多...}

我还在parse集合中记录了该函数,它通过JSON文件运行就好......任何关于这里可能出错的想法?msg对象的长度应为5..ie,即parse函数循环和(应该)将模型添加到集合的次数.

inheritance javascript-framework backbone.js

7
推荐指数
2
解决办法
6368
查看次数

单元测试模块化的JavaScript

我目前正在推出一个javascript框架模式作为客户端开发的架构,用于即将开发的大型应用程序.

我希望使用模块观察器模式,其中我开发的每个控件都有自己的javascript文件,不保留其他控件的知识.

从为我的应用程序设计这个框架,我希望集成我的模块的测试机制 - 一个javascript的单元测试机制.我不知道有任何这样的框架或我如何设置这样的框架.有什么建议?

作为此类测试的一部分,我还需要模拟http请求.

我将在开发中使用的库是jquery.

javascript testing jquery unit-testing javascript-framework

7
推荐指数
1
解决办法
371
查看次数

什么Javascript框架与Grails很好地集成?

我们为前端生成的大多数应用程序都使用Grails,我们喜欢它,但我们正在探索Javascript框架,例如backbone.js,ember.js,用于模板化,可重用性.我们对json感到舒服和熟悉,并且想知道对于与Grails一起使用的Javascript框架有哪些经验和建议.

想了解评估标准,实施成本和涉及的学习曲线.

javascript java grails groovy javascript-framework

7
推荐指数
1
解决办法
1056
查看次数

"在新标签页中打开"的Javascript事件

我有以下问题:我使用Javascript onclick事件来更改链接的href.它就像一个魅力,但只有当用户点击一个链接时.如果链接使用"在新标签中打开"功能 - onclick事件将不会触发,href将永远不会更改.有没有办法处理这样的事件?也许使用jQuery或其他一些JS Framework?

例:

<a href="some_url" onclick="this.href = 'some_other_url'">Link</a>
Run Code Online (Sandbox Code Playgroud)

非常感谢!

javascript jquery javascript-framework dom-events

7
推荐指数
1
解决办法
9033
查看次数

如何使用AngularJS对多个对象应用过滤器?

我有如下定义的用户对象.

$scope.users = [{id: 1, name: 'Adam', friends: [{name: 'John', age: 21, sex: 'M'}, {name: 'Brad', age: 32, sex: 'M'}]}]
Run Code Online (Sandbox Code Playgroud)

然后我有以下代码:

<div ng-repeat="user in users>
 <input type="text" ng-model="searchText">
 <div ng-repeat="friend in user.friends | filter:searchText">
  {{user.name}} {{friend.name}} {{friend.age}}
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在,当我在文本框中键入文本:'searchText'时,我希望过滤器显示用户的名称和朋友的姓名/年龄.任何人都可以帮我解决这个问题吗?

如果我是正确的,那么我认为我需要为此创建自定义过滤器,还是有其他方法可以实现此目的?

javascript javascript-framework angularjs

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

backbone.js真的需要underscore.js吗?

由于我是backbonejs和underscorejs的新手,我想知道那些核心意义.

由于我的理解underscorejs就像jQuery库一样,我们在backbonejs中使用这些函数.

我们无法开发没有下划线的backbonejs应用程序.

我对吗?如果我的理解是错误的,请用简单的单词/例子清楚说明.

提前致谢.

jquery javascript-framework backbone.js underscore.js

7
推荐指数
2
解决办法
4448
查看次数