2014-11-14 288 views
2

我有一個項目,我掃描QR碼,然後它會根據掃描的代碼自動打印出信息。Javascript - window.location.assign not working

我有掃描儀和打印機。每個QR碼都對應一個URL。我可以讓掃描儀填充輸入字段,並且我可以收到警報以顯示掃描的信息。但是,每當我嘗試分配URL時,它都會將信息附加到當前URL而不是替換它。

我需要它來替換當前的URL。有誰知道它爲什麼這樣做,以及如何解決它?

<html> 
<head><title>QR Printing</title></head> 

<body onload="document.myform.mytextfield.focus();"> 

<form name="myform"> 
    <input type="text" name="mytextfield" onchange="checkForm()"> 
</form> 

<script type="text/javascript" language="JavaScript"> 

function checkForm() { 
    var field1 = document.forms['myform'].elements['mytextfield'].value; 
    alert(field1); 
    window.location.assign(field1); 
}  

</script> 

</body> 
</html> 
+0

你可以用'<輸入自動對焦/>',而不是'<身體的onload =「的東西很長」>' – 2014-11-14 18:55:13

+0

你想** **重定向用戶到新的地址,或者只* *在瀏覽器的網址欄中替換文本** – 2014-11-14 18:57:29

+0

@ Al.G。 - 我想根據掃描的QR碼提供的URL重定向。 – 2014-11-14 19:06:33

回答

2

貌似形式提交。取消它。

<form name="myform" onsubmit="return false"> 
+0

就是這樣,謝謝! – 2014-11-14 19:16:42

1

你想:

window.location = field1; 
+0

這不起作用,它仍然只是將信息添加到網址的末尾 – 2014-11-14 19:05:13

+0

它不應該它將您發送到新的網址 – brso05 2014-11-14 19:07:03

+0

這是我正在玩的頁面。只需鍵入內容並按回車鍵(與掃描代碼相同) - http://aspecteleven.com/qr_print.html – 2014-11-14 19:08:21

0

add return false;在window.location.assign(field1)之後;

<html> 
<head><title>QR Printing</title></head> 

<body onload="document.myform.mytextfield.focus();"> 

<form name="myform"> 
    <input type="text" name="mytextfield" onchange="checkForm()"> 
</form> 

<script type="text/javascript" language="JavaScript"> 

function checkForm() { 
    var field1 = document.forms['myform'].elements['mytextfield'].value; 
    alert(field1); 
    window.location.assign(field1); 
    return false; 
}  

</script> 

</body> 
</html>