如何在不刷新页面的情况下更改浏览器地址栏的URL,并保留在同一页面上


How can I change URL of browser address bar without page refresh, remaining on same page?

我想不间断地播放背景音乐。URL 的更改(例如 index.php?step1 )刷新了我的索引.php页面,即使我在 index.php 上重新调整。请帮助我如何防止我的索引页面刷新或播放音乐而没有中断。

索引中.php

<audio  controls preload="auto" >
<source src="bak_music/back_music.mp3"  ></source>
</audio>
 <a href="?step1">step 1</a>
    <?php 
    if($_SERVER['QUERY_STRING']=='step1')
    {
    step1_function();
    }
    ?>

刷新我的索引.php

如果你正在尝试做我的想法,你可以使用 Javascript 并执行 AJAX 调用来分离 PHP 代码并在需要时返回数据。

像这样的东西。

索引.php

<script src="https://code.jquery.com/jquery-2.2.0.js"></script>
<a href="#" class="step-button" name="step1">Step 1</a>
<a href="#" class="step-button" name="step2">Step 2</a>
<script>
$(document).ready( function(){
    $('.step-button').click(function( e ){
        e.preventDefault();
        var step = $(this).attr('name');
        var postData = {
            step: step,
            action: 'stepFuntion',
        }
        $.ajax({
            type: "POST",
            url: 'ajax.php',
            data: step,
            success: function( data )
            {
                // Data to return
                console.log(data);
            }
        })
    })
})
</script>

阿贾克斯.php

<?php
if ( isset($_REQUEST['stepFuntion']) )
{
    $function = call_user_func( $_REQUEST['step'].'_function()' );
    $return = json_encode( $function );
    die($return);
}
?>

我认为这会让你得到你想要的结果。