繁体   English   中英

dojo / parser :: parse()错误TypeError:无法读取未定义的属性'getAttribute'

[英]dojo/parser::parse() error TypeError: Cannot read property 'getAttribute' of undefined

我将Dojo与.NET Webforms一起使用来创建弹出菜单,当我尝试加载页面时出现以下错误。 “ dojo / parser :: parse()错误TypeError:无法读取未定义的属性'getAttribute'”

如果有人可以共享有关如何在Webforms中使用dojo的博客,那将非常有用。 下面是我的代码供参考。 请检查并帮助我解决此问题。

<%@ Page Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeBehind="xyz.aspx.cs" Inherits="xyz" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
<link href="../Content/bootstrap.min.css" rel="stylesheet" />
<link href="../Content/themes/base/jquery-ui.css" rel="stylesheet" />
<link href="../Content/claro.css" rel="stylesheet" />
<link href="../Scripts/dojo/resources/dojo.css" rel="stylesheet" />

<script type="text/javascript" src="../Scripts/jquery-1.12.4.js"></script>
<script type="text/javascript" src="../Scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="../Scripts/jquery-ui-1.12.1.js">
</script>
<script type="text/javascript" src="../Scripts/dojo/dojo.js" ></script>

</head>
<body class="claro" style="height:100px;width:100px;">

 <div data-dojo-type="dijit/layout/BorderContainer" style="height:100%; width:100%">

        <div data-dojo-type="dijit/layout/ContentPane"
            data-dojo-props="region: 'center'">
            <div data-dojo-type="dijit/MenuBar">
                <div data-dojo-type="dijit/PopupMenuBarItem">
                    <span>File</span>
                    <div data-dojo-type="dijit/DropDownMenu">
                        <div data-dojo-type="dijit/MenuItem">Open</div>
                        <div data-dojo-type="dijit/MenuItem">Save</div>
                        <div data-dojo-type="dijit/PopupMenuItem">
                            <span> Recent...</span>
                        </div>
                    </div>
                </div>
            </div> 
        </div>
    </div>

 <script type="text/javascript">

     document.getElementById("pnlControlList").remove();
     $("#navbar").remove();

     require(["dojo/parser"], function (parser) {
         parser.parse();
     });

 </script>
</body>
</html>
</asp:Content> 

这段代码会导致问题:

<div data-dojo-type="dijit/PopupMenuItem">
   <span> Recent...</span>
</div>

dijit/PopupMenuItem需要包含dropdown元素作为其子元素。

 require(["dojo/parser", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dijit/MenuBar", "dijit/PopupMenuBarItem", "dijit/DropDownMenu", "dijit/MenuItem", "dijit/PopupMenuItem" ], function (parser) { parser.parse(); }); 
 <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script> <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/claro/claro.css" /> <body class="claro"> <div data-dojo-type="dijit/layout/BorderContainer" style="height:100px; width:100px"> <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region: 'center'"> <div data-dojo-type="dijit/MenuBar"> <div data-dojo-type="dijit/PopupMenuBarItem"> <span>File</span> <div data-dojo-type="dijit/DropDownMenu"> <div data-dojo-type="dijit/MenuItem">Open</div> <div data-dojo-type="dijit/MenuItem">Save</div> <div data-dojo-type="dijit/PopupMenuItem"> <span> Recent...</span> <div data-dojo-type="dijit/DropDownMenu"> <div data-dojo-type="dijit/MenuItem">Some Item</div> </div> </div> </div> </div> </div> </div> </div> </body> 

注意:我还已将html中包含的所有dijit模块添加到必需的模块中。 我不知道它在.NET中是否是必需的,但是某些环境在没有它的情况下会引发错误(例如jsfiddle)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM