2017-07-14 6 views
0

私はビデオゲームを作っています。プレイヤーがテキスト入力ボックスを介してゲーム内のカスタムファイルを選択できるようにします。私はすべてを動かすことができましたが、負荷レベルボタンをクリックすると、それは私にかかります:テキストでwindow.location URLを変更する方法<input>ボックス

... /カスタムレベル/ undefined.html 私はいくつかの他の方法で回ってみました私が得たものは:.htmlを

<div> 
    <p><input type="text" id="LVLNK" value="Level Name"></p> 
    <p><input type="button" id="MButton" value="Load Level" onclick="LDLVLNK()"></p> 
    </div> 

<script> 
var time = setInterval(10,gameLoop) 
var LevelLink; /*put: "var LevelLink = document.getElementById("LVLNK");" to get other link example instead*/ 

function gameLoop() 
{ 
LevelLink = document.getElementById("LVLNK").value; 
} 

function LDLVLNK() 
{ 
window.location = "../Custom Levels/" + LevelLink + ".html"; 
} 

私は現在アクセスしようとしているファイルが

"CLevel1" という名前の

... /カスタムレベル/ [オブジェクトHTMLInputElementの]だから私は希望CLevel1を入力ボックスに配置します。 gameLoopは、ボタンによってアクティブ化されたLDLVLNK関数内にあるwindow.location関数のフルリンクに追加されたLevelLink変数の名前を設定します。ところで

function LDLVLNK(){ 
    location.href = "../Custom Levels/" + LevelLink + ".html"; 
//here window is optional, location is a globally accessible object 
} 



:あなたは、あなたがsetInterval(gameLoop, 10);は(たとえ10はおそらくすることにより保守性/非常に良いではありません使用する必要がありますsetIntervalと間違ってそれを得た

+0

返すオブジェクトは、「Levellink.value」と呼ばれています。 – KaoriYui

+0

彼は割り当てに '.value'を持っています。 – Barmar

答えて

0

は、私はあなたが、次の試みることができると思いますブラウザで100を試して、それが多すぎる場合はタッチで量を減らしてください)

+0

'window.location'と' location.href'も同じことをします。 – Barmar

+0

OPは自分のURLに[object HTMLInputElement]を取得したと報告しています。これは、値を文字列化する際にも問題があることを意味します。これで問題は完全には解決されません。 – Zomry

+0

私はそれを修正するだろうね! –

1

あなたは引数をsetInterval()にしています。

setInterval(gameLoop, 10); 

しかし、グローバル変数LevelLinkの理由はありません。入力値はLDLVLNK()になります。

function LDLVLNK() { 
    var LevelLink = document.getElementById("LVLNK").value; 
    if (LevelLink) { 
     window.location = "../Custom Levels/" + LevelLink + ".html"; 
    } else { 
     alert("Nowhere to go to"); 
    } 
} 
+0

ちょっと男!ありがとう!私はあなたの答えを見る前にあなたのプロフィールを見ました(私はあなたがプロを感じることを望んでいました)。コーディングの簡素化をお寄せいただきありがとうございました。私はそれを追加しました。私は警告の追加が好きです! –

+0

LevelLinkの値がファイルの名前であるかどうかテストすることは可能でしょうか?例:FirstLevelという名前のファイルにアクセスしようとしていて、誤ってFstLevelを置いている場合。名前がFstLevelの場合はファイル名で、それ以外の場合は警告を返しますか? –

+0

URLにAJAXの 'GET'リクエストを実行できます。成功した場合はリダイレクトを行い、失敗した場合はアラートを表示します。 – Barmar

関連する問題