为了账号安全,请及时绑定邮箱和手机立即绑定

如何解决:HTML 模板必须包含单个根元素

如何解决:HTML 模板必须包含单个根元素

墨色风雨 2021-11-25 19:07:34
我正在尝试将 onsen navigator 与多个“.html”文件一起使用,但我遇到了同样的错误,无论我尝试过什么我的场景-万维网/脚本索引.html主页.html我想从 index.html 转到 home.html错误:Uncaught (in promise) Error: [Onsen UI] HTML template must contain a single root element    at Object.Q.throw (onsenui.min.js:2)    at Object.Q.createElement (onsenui.min.js:2)    at onsenui.min.js:2我的 index.html:    <link rel="stylesheet" href="https://unpkg.com/onsenui/css/onsenui.css">    <link rel="stylesheet" href="https://unpkg.com/onsenui/css/onsen-css-components.min.css">    <script src="https://unpkg.com/onsenui/js/onsenui.min.js"></script>    <script src='scripts/loginScript.js' type='text/javascript'></script>    <link rel="stylesheet" href="style.css">    <title>Tu Psicologa de Cabecera</title></head><body>    <ons-navigator id="navigator" page="index.html"></ons-navigator>        <ons-template id="index.html">            <ons-page id="index">                <img class="imagenLogo" src="https://i.imgur.com/cq7BbWn.png">                <ons-card class="loginCard">                    <ons-input id="userLogin" modifier="underbar" placeholder="Usuario" style="width: 100%; margin-top: 8px; margin-bottom: 8px;" float></ons-input>                    <ons-input id="passLogin" modifier="underbar" placeholder="Contraseña" type="password" style="width: 100%; margin-top: 8px; margin-bottom: 8px;" float></ons-input>                    <ons-button class="loginButton" onclick="loginNomral()">ENTRAR</ons-button>                    <ons-button class="loginFacebookButton">ENTRAR CON FACEBOOK</ons-button>                    <label class="labelRegister">REGISTRARME</ilabel>                </ons-card>            </ons-page>        </ons-template>    <script type="text/javascript" src="cordova.js"></script></body>
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

解决方案很简单,几个小时后,我删除了所有的 html 格式并保留了标签。


由此:


<!DOCTYPE html>

<html>

   <head>

    <meta charset="utf-8">

    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">


    <link rel="stylesheet" href="https://unpkg.com/onsenui/css/onsenui.css">

    <link rel="stylesheet" href="https://unpkg.com/onsenui/css/onsen-css-components.min.css">

    <script src="https://unpkg.com/onsenui/js/onsenui.min.js"></script>


    <link rel="stylesheet" href="style.css">

    <title></title>

</head>

<body>

    <ons-page id="home">

        <ons-toolbar>

            <div class="left"><ons-back-button>Page 1</ons-back-button></div>

        </ons-toolbar>


        <p>This is the second page.</p>

    </ons-page>

</body>

</html>

对此:


<ons-page id="home">

    <ons-card class="loginCard">

        <ons-input id="userLogin" modifier="underbar" placeholder="Usuario" style="width: 100%; margin-top: 8px; margin-bottom: 8px;" float></ons-input>

        <ons-input id="passLogin" modifier="underbar" placeholder="Contraseña" type="password" style="width: 100%; margin-top: 8px; margin-bottom: 8px;" float></ons-input>


        <ons-button class="loginButton" onclick="logintest()">ENTRAR</ons-button>

        <ons-button class="loginFacebookButton">ENTRAR CON FACEBOOK</ons-button>

        <label class="labelRegister">REGISTRARME</ilabel>

    </ons-card>

</ons-page>


查看完整回答
反对 回复 2021-11-25
?
BIG阳

TA贡献1859条经验 获得超6个赞

Onsen UI navigator 使用您指定页面内容的模板,您无需创建不同的 html 文件来指定不同的页面


document.addEventListener('init', function(event) {

  var page = event.target;


  if (page.id === 'page1') {

    page.querySelector('#push-button').onclick = function() {

      document.querySelector('#myNavigator').pushPage('page2.html', {data: {title: 'Page 2'}});

    };

  } else if (page.id === 'page2') {

    page.querySelector('ons-toolbar .center').innerHTML = page.data.title;

  }

});

   <!DOCTYPE html>

   <html>

   <head>

    <meta charset="utf-8">

    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">


    <link rel="stylesheet" href="https://unpkg.com/onsenui/css/onsenui.css">

    <link rel="stylesheet" href="https://unpkg.com/onsenui/css/onsen-css-components.min.css">

    <script src="https://unpkg.com/onsenui/js/onsenui.min.js"></script>


    <link rel="stylesheet" href="style.css">

    <title>App</title>

</head>

<body>

    <ons-navigator swipeable id="myNavigator" page="page1.html"></ons-navigator>


<template id="page1.html">

  <ons-page id="page1">

    <ons-toolbar>

      <div class="center">Page 1</div>

    </ons-toolbar>


    <p>This is the first page.</p>


    <ons-button id="push-button">Push page</ons-button>

  </ons-page>

</template>


<template id="page2.html">

  <ons-page id="page2">

    <ons-toolbar>

      <div class="left"><ons-back-button>Page 1</ons-back-button></div>

      <div class="center"></div>

    </ons-toolbar>


    <p>This is the second page.</p>

  </ons-page>

</template>

</body>

</html>


查看完整回答
反对 回复 2021-11-25
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

从你的代码看来,你</head>没有开口<head>


但主要问题是你不能有 2 个标签作为根,这意味着你需要用一个<html></html>标签包装它们


像这样:


<html>

   <head>

      <title>Page Title</title>

   </head>

   <body>

      <h1>My First Heading</h1>

      <p>My first paragraph.</p>

   </body>

</html>


查看完整回答
反对 回复 2021-11-25
  • 3 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信