2017-11-23 2 views
0

재생 버튼을 클릭 할 때 노래를 재생하는 onclick 요소를 만들려고합니다. 제가 설정 한 방식은 아포스트로피가없는 노래에 대해서는 훌륭하게 작동하지만, 그렇게하는 경우에는 노래가 재생되지 않습니다. 당신이 테스트 할 수 있도록 여기에 onclick()에 문제를 일으키는 ASCII 문자 javascript

사이트입니다 : https://www.unearthapp.io/Home/New

"당신은 사랑 말도하지 마"입니다 작동하지 않습니다 곡 (노래 위로 마우스를 가져가 재생 버튼을 클릭) 여기에서 해당 코드의 HTML : 여기

는 HTML

<a href="@Url.Action("Index", "Album", new { ID = item.Album.AlbumID })">@item.Title</a><span class="feat-artists">@item.Artist</span> 

그리고 해당 자바 스크립트의

function playPauseClick(_songID, title, artist, url, imageURL) 
{ 
    songID = _songID; 
    var song = 
    { 
     songID: songID, 
     title: ((title != null && title != "" && title != "null") ? title : ''), 
     artist: ((artist != null && artist != "" && artist != "null") ? artist : ''), 
     file: url, 
     imageURL: (imageURL != "" ? imageURL : SITEROOT_ABSOLUTE + "/resources/images/album_ph.jpg"), 
     howl: null 
    } 
    if(player == null) 
    { 
     player = new Player([ song ]); 
    } 
    else 
    { 
     player.playlist.push(song); 
    } 
    playPauseBtn = $("#playPauseBtn" + songID); 
    resetPlayPauseBtns(); 
    if(playPauseBtn.hasClass("ion-ios-play") && !playPauseBtn.hasClass("resumesong")) 
    { 
     player.skipTo(player.playlist.length - 1); 
    } 
    else 
    { 
     togglePlayPauseBtn(); 
    } 
    return; 
} 
+0

(14)을 거기에 대해 할에 작은 따옴표 "당신이 사랑한다고 말하지 마라"에서 다른 ASCII 문자들 - 어느 것이 문제 야? –

+0

'playPauseClick' 함수에 도달하는 제목은 문자열''Don ' t Say You Love''입니다 (생성 된 페이지 소스에 표시됨). 아포스트로피가 성격 엔티티로 대체되는 곳은 나에게 알려지지 않았지만 그것을 고려하는 것이 시작할 수있는 좋은 장소 인 것처럼 보입니다. – traktor53

답변

-1

오류를 찾으 셨습니다.

(function(event){playPauseClick('82', 'Don't Say You Love', 'SITA', 'https://ucarecdn.com/20bd363d-b830-4676-87f0-7734db3752e4/', 'https://ucarecdn.com/c27c2c47-1c5e-46fa-ab13-feb5d4a7c6a6/'); 
}) 

이 문제는이

'Don't Say You Love' 

중 여기 Don\'t 또는 "Don't Say You Love" 문제를 사용입니다하지

+0

슬래시를 자동으로 추가하는 방법이 있습니까? 나는 사용자가 제출할 때 노래의 이름을 제어하지 않는다. –

1

이것이

var str = "Don't Say You Love"; 
var res = str.replace("'", "\'"); 
+1

사용자가 새로운 노래를 제출할 때 노래 제목의 변수와 다른 사용자가 제출 한 데이터가 저장되기 전에 위생 처리되어야한다고 명시해야한다. 당신의 솔루션은 정확합니다. 단지 코드가 어디로 가야하는지, 이유는 설명하지 않습니다. 포스터는 노래를 재생할 수있는 코드를 제공했지만 사용자가 새 노래를 제출할 때 처리 할 코드를 수정해야합니다. 이것은 데이터베이스에 저장되기 전에 서버 나 서버로 전송되기 전에 javascript로 수행 될 수 있습니다. – Ravenous

관련 문제