当javascript在服务器上运行时未定义

Undefined when javascript runs on servers

本文关键字:运行时 未定义 服务器 javascript      更新时间:2023-09-26

这让我对下面的代码感到困惑:

<!DOCTYPE html>
<html ng-app>
<head>
<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<script>
function ctrl($scope){
    $scope.submit = function(e){
        var elem = angular.element(e.srcElement);
        alert($(elem.parent()).html());
        //alert ('first name ' + person.first + ' last name ' + person.last);
    };
}
</script>
</head>
<body>
<div ng-controller="ctrl">
First: <input name="first" value="will" />
Last: <input name="last" value = "kriski" />
    <input type="submit" name="submit" ng-click="submit($event)"/>
</div>
</body>
</html>

在jsfiddle和plunker中工作(单击Submit,但在警报中显示HTML)。

但是当我在本地和我的个人服务器上运行相同的代码时,警报读取"未定义"

这两个都可以:http://jsfiddle.net/sjmcpherso/yQs8z/193/http://plnkr.co/qaqymNFQIe3ziyj7AKXa

相同的粘贴代码在我的个人服务器没有http://sjmcpherson.com/testing/test.html

真的困惑

试试下面的代码

<script type = "text/javascript">
    $(document).ready(function(e) {
        function ctrl($scope)
        {
            $scope.submit = function(e){
                var elem = angular.element(e.srcElement);
                alert($(elem.parent()).html());
                //alert ('first name ' + person.first + ' last name ' + person.last);
            };
        }
    });
</script>

或者在关闭</body>之前写function ctrl($scope) { //Your code goes here }

Doh实际上我意识到这个错误只发生在Firefox而不是Chrome,并且涉及到与Firefox不兼容的srcElement这篇文章解释了一个修复我如何制作事件。srcElement在Firefox中工作,它是什么意思?