こんにちは、誰かが私を助けてくれるかどうか興味がありました。私は通常ここに投稿しませんが、すべての努力を使い果たしたので、これを理解することはできません. ここにこのコードがあります
function insertVideo(link)
{
if (link)
{
if(link.substring(0,29)!="http://www.youtube.com/watch?"){
alert("You did not enter a valid URL!\r\nPlease try again.");
return false;
}
else{
link = link.replace(/watch\?/,"").replace(/\=/,"/");
}
var editpane = document.frmPost.addesc;
var linkcode = "[EMBED]" + link + "[/EMBED]";
editpane.focus();
/*if (document.selection)
{
document.selection.createRange().text = linkcode;
}
else*/
if (editpane.selectionStart || editpane.selectionStart == '0')
{
var selstart = editpane.selectionStart;
var selend = editpane.selectionEnd;
editpane.value = editpane.value.substring(0, selstart) + linkcode + editpane.value.substring(selend);
editpane.selectionStart = selstart + linkcode.length;
editpane.selectionEnd = editpane.selectionStart;
}
else
{
editpane.value = editpane.value + linkcode;
}
editpane.focus();
}
}
私が抱えている問題は、ユーザーがアドレスに https を含む YouTube ビデオをトップ投稿しようとしたときです。
変えればわかる
{
if(link.substring(0,29)!="http://www.youtube.com/watch?"){
alert("You did not enter a valid URL!\r\nPlease try again.");
return false;
}
に
{
if(link.substring(0,30)!="https://www.youtube.com/watch?"){
alert("You did not enter a valid URL!\r\nPlease try again.");
return false;
}
できます。しかし、ユーザーが https なしで http アドレスを入力すると、機能しなくなります。ステートメントを OR と組み合わせることができると考えましたが、これも機能しません。
if(link.substring(0,29)!="http://www.youtube.com/watch?" || link.substring(0,30)!="https://www.youtube.com/watch?"){
alert("You did not enter a valid URL!\r\nPlease try again.");
return false;
}
else{
link = link.replace(/watch\?/,"").replace(/\=/,"/");
}
したがって、基本的には、どちらか一方だけでなく、両方の状況 (https と http) で機能する必要があります。私は困惑しています、私はjavascriptのプロではないので、それは小さなエラーだと確信していますが、自分でこれを理解しようとするのに多くの時間を費やしました. できれば助けてください。ありがとう!