在 Javascript 中处理切换页面的正确命令行是什么

What is the right command-line to deal with switching pages in Javascript

提问人:sql 提问时间:11/13/2023 最后编辑:sql 更新时间:11/14/2023 访问量:66

问:

我正在做一个课堂项目,我创建了一个应用程序,您可以通过单击图标导航到下一页,类似于应用程序的工作方式。当我单击主页图标两次时,它会将我带到不应该发生的第 2 页。我希望它在哪里,当你点击主页图标时,它会进入主页,当你点击搜索时,它会像应用程序一样进入搜索,但是当我点击图标 2 次时,它会显示另一个页面。我将添加一个视频,以便您可以看到它的实际效果以及共享我的代码。我是所有这些的新手,可能需要一些帮助。如果有人愿意直接给我发消息并提供帮助,我们将不胜感激。在此过程中,我可能会有一些问题。谢谢!

这是 HTML

<!-- Icons at the bottom for navigation -->
<div class="bottom-container">
    <div class="bottom-icons">
        <div class="icon" onclick="showHomePage()">
            <img src="images/homepagepng.png" alt="Home Icon" class="icon1-img" />
        </div>
        <div class="icon" onclick="showSearchPage()">
            <img src="images/searchpng.png" alt="Search Icon" class="icon1-img" />
        </div>
        <div class="icon" onclick="showPostPage()">
            <img src="images/post.png" alt="Post Icon" class="icon1-img" />
        </div>
        <div class="icon" onclick="showNotificationsPage()">
            <img src="images/notificationpng.png" alt="Notifications Icon" class="icon1-img" />
        </div>
    </div>
</div>
        </div>
    </div>
</div>
 
<!-- Search Page -->
<div class="app" id="search-content" style="display: none;">
    <div class="app-wrapper">
        <div class="header">
            <div class="subtitle">Search your favorite creators</div>p
            <div class="bottom-container">
                <div class="bottom-icons">
                    <div class="icon" onclick="showHomePage()">
                        <img src="images/homepagepng.png" alt="Home Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showSearchPage()">
                        <img src="images/searchpng.png" alt="Search Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showPostPage()">
                        <img src="images/post.png" alt="Post Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showNotificationsPage()">
                        <img src="images/notificationpng.png" alt="Notifications Icon" class="icon1-img" />
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
 
<!-- Post Page -->
<div class="app" id="post-content" style="display: none;">
    <div class="app-wrapper">
        <div class="header">
            <div class="subtitle">Posting Page</div>
            <div class="bottom-container">
                <div class="bottom-icons">
                    <div class="icon" onclick="showHomePage()">
                        <img src="images/homepagepng.png" alt="Home Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showSearchPage()">
                        <img src="images/searchpng.png" alt="Search Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showPostPage()">
                        <img src="images/post.png" alt="Post Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showNotificationsPage()">
                        <img src="images/notificationpng.png" alt="Notifications Icon" class="icon1-img" />
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
 
<!-- Notifications Page -->
<div class="app" id="notifications-content" style="display: none;">
    <div class="app-wrapper">
        <div class="header">
            <div class="subtitle">Notifications Page</div>
            <div class="bottom-container">
                <div class="bottom-icons">
                    <div class="icon" onclick="showHomePage()">
                        <img src="images/homepagepng.png" alt="Home Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showSearchPage()">
                        <img src="images/searchpng.png" alt="Search Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showPostPage()">
                        <img src="images/post.png" alt="Post Icon" class="icon1-img" />
                    </div>
                    <div class="icon" onclick="showNotificationsPage()">
                        <img src="images/notificationpng.png" alt="Notifications Icon" class="icon1-img" />
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

这是 Js

<script>
    var currentPageId = '';
    
    function switchPage(pageId) {
    if (currentPageId !== pageId) {
    var pages = document.getElementsByClassName('app');
    for (var i = 0; i < pages.length; i++) {
    pages[i].style.display = 'none';
    }
    
    var selectedPage = document.getElementById(pageId);
    if(statment) {
    selectedPage.style.display = 'flex';
    currentPageId = pageId;
    }
    }
    }
    
    function showHomePage() {
    switchPage('home-content');
    }
    
    function showSearchPage() {
    switchPage('search-content');
    }
    
    function showPostPage() {
    switchPage('post-content');
    }
    
    function showNotificationsPage() {
    switchPage('notifications-content');
    }
    
    function submitPost() {
    alert("Post submitted!");
    showHomePage();
    }
    </script>

现在这是我认为搞砸了它的 javascript 代码

希望有人能找到它这样做的原因 我还尝试将if(statement)也做了同样的事情 这里还有一个视频 https://streamable.com/xx5fd9

我还尝试将if(statement)也做了同样的事情

JavaScript HTML CSS ReactJS 函数

评论


答:

0赞 hcharles25 11/13/2023 #1

要简单地使用 javascript 重定向浏览器:

window.location.href = "http://example.com/new_url";

要重定向并提交表单(即登录详细信息),不需要 javascript:

<form action="/new_url" method="POST">
   <input name="username">
   <input type="password" name="password">
   <button type="submit">Submit</button>
</form>

或者你可以使用

window.open(stringURL);以在新窗口中打开 HTML。

要打开新标签页,请执行以下操作:

window.open(stringURL, “_blank”);

评论

0赞 sql 11/13/2023
嘿,但我试图将我的所有代码保存在一个文件上,而不是另一个 HTLM 文件
0赞 hcharles25 11/13/2023
@sql,你为什么在里面写“声明”?请像这样修复var selectedPage = document.getElementById(pageId); if(statment) {if (selectedPage) { selectedPage.style.display = 'block'; currentPageId = pageId; }
0赞 sql 11/13/2023
再一次,我是所有这些 NGL 的新手,当我打电话给某人时,他们告诉我要写声明
0赞 sql 11/13/2023
如果您知道如何解决正在发生的事情,请帮助我在 2 天内完成这项工作
0赞 hcharles25 11/13/2023
statement在此上下文中未定义。如果有人这样说,那么这意味着目标元素语句。我的意思是你可以像这样修复var statement = document.getElementById(pageId); if(statment) { selectedPage.style.display = 'flex'; currentPageId = pageId; }
1赞 Pranav Rustagi 11/14/2023 #2

这能解决问题吗?

var currentPageId = 'home-content';

function switchPage(pageId) {
  if (currentPageId !== pageId) {
    var pages = document.getElementsByClassName('app');
    for (var i = 0; i < pages.length; i++) {
      pages[i].style.display = 'none';
    }

    var selectedPage = document.getElementById(pageId);
    if (selectedPage) {
      selectedPage.style.display = 'flex';
      currentPageId = pageId;
    }
  }
}

function showHomePage() {
  switchPage('home-content');
}

function showSearchPage() {
  switchPage('search-content');
}

function showPostPage() {
  switchPage('post-content');
}

function showNotificationsPage() {
  switchPage('notifications-content');
}

function submitPost() {
  alert("Post submitted!");
  showHomePage();
}
<!-- Home Page -->
<div class="app" id="home-content">
  <div class="app-wrapper">
    <div class="header">
      <div class="subtitle">Home page</div>
      <div class="bottom-container">
        <div class="bottom-icons">
          <div class="icon" onclick="showHomePage()">
            <img src="images/homepagepng.png" alt="Home Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showSearchPage()">
            <img src="images/searchpng.png" alt="Search Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showPostPage()">
            <img src="images/post.png" alt="Post Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showNotificationsPage()">
            <img src="images/notificationpng.png" alt="Notifications Icon" class="icon1-img" />
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<!-- Search Page -->
<div class="app" id="search-content" style="display: none;">
  <div class="app-wrapper">
    <div class="header">
      <div class="subtitle">Search your favorite creators</div>
      <div class="bottom-container">
        <div class="bottom-icons">
          <div class="icon" onclick="showHomePage()">
            <img src="images/homepagepng.png" alt="Home Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showSearchPage()">
            <img src="images/searchpng.png" alt="Search Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showPostPage()">
            <img src="images/post.png" alt="Post Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showNotificationsPage()">
            <img src="images/notificationpng.png" alt="Notifications Icon" class="icon1-img" />
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<!-- Post Page -->
<div class="app" id="post-content" style="display: none;">
  <div class="app-wrapper">
    <div class="header">
      <div class="subtitle">Posting Page</div>
      <div class="bottom-container">
        <div class="bottom-icons">
          <div class="icon" onclick="showHomePage()">
            <img src="images/homepagepng.png" alt="Home Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showSearchPage()">
            <img src="images/searchpng.png" alt="Search Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showPostPage()">
            <img src="images/post.png" alt="Post Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showNotificationsPage()">
            <img src="images/notificationpng.png" alt="Notifications Icon" class="icon1-img" />
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<!-- Notifications Page -->
<div class="app" id="notifications-content" style="display: none;">
  <div class="app-wrapper">
    <div class="header">
      <div class="subtitle">Notifications Page</div>
      <div class="bottom-container">
        <div class="bottom-icons">
          <div class="icon" onclick="showHomePage()">
            <img src="images/homepagepng.png" alt="Home Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showSearchPage()">
            <img src="images/searchpng.png" alt="Search Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showPostPage()">
            <img src="images/post.png" alt="Post Icon" class="icon1-img" />
          </div>
          <div class="icon" onclick="showNotificationsPage()">
            <img src="images/notificationpng.png" alt="Notifications Icon" class="icon1-img" />
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

评论

0赞 Pranav Rustagi 11/14/2023
@sql 如果您还想实现其他目标,请告诉我。除此之外,这里还有很多多余的代码,你可以清理。让我知道你想这样做。