JQuery странное поведение обновления страницы, когда я заменяю содержимое - PullRequest
0 голосов
/ 24 мая 2011

У меня есть сайт с флеш-плеером.

Этот код предоставляет мне флеш-плеер, хранящийся в player_codes.php:

<script language="javascript" type="text/javascript" src="songs_related/flashmp3player/swfobject.js" ></script>
<!-- Div that contains player. -->
<div id="player">
    <h1>No flash player!</h1>
    <p>It looks like you don't have flash player installed. <a href="http://www.macromedia.com/go/getflashplayer" >Click here</a> to go to Macromedia download page.</p>
</div>

<!-- Script that embeds player. -->
<script language="javascript" type="text/javascript">
    var so = new SWFObject("songs_related/flashmp3player/flashmp3player.swf", "player", "290", "247", "9"); // Location of swf file. You can change player width and height here (using pixels or percents).
    so.addParam("quality", "high");
    so.addVariable("content_path","songs_related/uploads"); // Location of a folder with mp3 files (relative to php script).
    so.addVariable("color_path","songs_related/flashmp3player/default.xml"); // Location of xml file with color settings.
    so.addVariable("script_path","songs_related/flashmp3player/flashmp3player.php");     
    // Location of php script.
    so.write("player"); 
</script>

Вот как я включаю бэкэнд плеера

<div id="main_music_player_for_the_site">
    <?php include_once('player_codes.php'); ?>
</div>

Если вы перейдете по этой ссылке здесь и нажмете кнопку воспроизведения для любой песни в списке, произойдет следующее:

  1. Я отправлю запрос в бэкэнд и установлюпесня.
  2. Подтверждение приходит ко мне.
  3. Я загружаю плеер из player_codes.php (см. Выше)

Но когда происходит шаг 3, он обновляется! и застревает

Это не должно ссылаться это не обновляется и в моем локальном хосте.

Вот мой JS, который выполняет работу (вызывается послея получаю ответ на шаге 2)

function callBackForLoadSong(data)
{
    //alert(data);
    if(data == "failed")
    {
        alert("Song requres you to login. Its easy to create an account! We will take you to the login page after you press ok");
        window.location.replace(REDIRECT);
    }
    else
    {
        //alert("s");
        $("#main_music_player_for_the_site").text("refreshing player...");
        $("#main_music_player_for_the_site").load("player_codes.php");
    }
}

Главное, что меня беспокоит, так это то, почему страница обновляется ???и застрял

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

Что ж, реальная проблема заключается в моем возвращаемом значении false ПОСЛЕ ТОГО, КАК Я ВЫПОЛНЯЮ МОЙ ВЫЗОВ CALL !!!

Вот исправленный JS:

function callBackForLoadSong(data)
{
    //alert(data);
    if(data == "failed")
    {
        alert("Song requres you to login. Its easy to create an account! We will take you to the login page after you press ok");
        window.location.replace(REDIRECT);
    }
    else
    {
        //alert("s");
        $("#main_music_player_for_the_site").text("refreshing player...");
        $("#main_music_player_for_the_site").load("player_codes.php");
    }
    return false;
}

, поэтому возвращаем false;также должна быть указана в функции

0 голосов
/ 24 мая 2011

У вас одинаковый HREF для каждой кнопки воспроизведения. Похоже, ваше событие onClick загружает песни?

Вы должны иметь:

<a href="javascript:void(0)" onclick="loadSong('849','http://bedupako.com/songs.php');return false;">play</a>

Вместо:

<a href="songs_related/create_play_list.php?single=0&amp;songid=849&amp;url=http://bedupako.com/songs.php" onclick="loadSong('849','http://bedupako.com/songs.php');return false;">play</a>

Прямо сейчас вы указываете javascript загружать вашу песню с событием onClick и говорите браузеру перейти на другой URL с помощью HREF. javascript: void (0) не позволит браузеру выполнить HREF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...