停止加载网站以显示消息

时间:2018-07-07 18:52:11

标签: javascript php jquery html dom

我想在访问者进入网站之前向他们显示一条消息,然后允许他们使用按钮继续访问主网站。我也不想移动主要站点的位置。

与此类似:

<script>
    function continue() { /* function to continue loading site */ }
</script>

<p>This is a message. <button onclick="continue();">I agree</button></p>

<script>
    //stop loading what's below when someone enters the site, and display only the message
</script>

<html>
<body>
    <p>This is my main site with a lot of content.</p>
</body>
</html>

我不能只覆盖主要站点,我不希望访问者在阅读消息时运行任何功能。

有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:0)

仅显示覆盖整个页面的大div

<html>
<head>
<style>
    .message{
     position: fixed;
     top: 0;
     bottom:0;
     left: 0;
     right: 0;
     z-index: 1000;
     background-color: grey;
    }
    </style>
    </head>
    <body>
    <div class="message" id="message">
    <!-- message -->
    Message<br/>
    <button onClick="document.getElementById('message').style.display='none';">
    Continue to Site
    </button>
    </div>
    <div class="content">
    <!-- Main content -->
    Main content
    </div>
    </body>
 </html>

答案 1 :(得分:0)

您无法通过JS停止加载页面。在某些情况下,JS可以停止呈现页面。但是它仍然可以被机器/显示源读取。

如果您不想掩护网站,则可以通过style="display:none"隐藏某些元素。

如果页面必须是机器无法读取的,则必须在服务器端实现这一点:

<?php 
session_start(); 
if(!empty($_POST['policy'])) $_SESSION['accepted_policy'] = true; 
if(empty($_SESSION['accepted_policy'])) { 
?><form action="?" method="post"> 
<input type="checkbox" value="1" name="policy"> I've accepted ...<br /> 
<input type="submit" > </form>
<?php die(); 
} ?>
normal page

如果您不想在continue()之前执行任何JS,则可以通过此函数运行$.ready()

答案 2 :(得分:0)

使用window.stop()阻止窗口进一步加载。但是,这不适用于Internet Explorer或Microsoft Edge。

<html>
<head>
</head>
<body>
Content that will be shown
<script>
window.stop();
</script>
Content that will not be shown
</body>
</html>