当url从另一个应用程序返回时阻止刷新

时间:2015-04-28 20:10:01

标签: javascript jquery html

我从我的网页触发条形码扫描器应用程序,一旦应用程序打开,我就可以扫描条形码并通过URL检索它。

现在,我在URL所在的页面上有多个输入字段。我从URL中获取扫描的条形码并将其放在输入字段中。

问题是,当URL返回扫描的条形码时,它会刷新整个页面,从而从输入字段中删除所有先前输入的值。

那么,是否有一种方法可以从URL中检索条形码而不刷新页面(以便输入字段保留其值)或者如何保留输入字段中输入的值。

而且我不想去服务器方面。请提供仅适用于前端的解决方案。

以下是我创建的小提琴。看看是否有任何帮助。

<input type="text" id="InputToOutput1" class="ScannedOutput"><br><br>
<input type="text" id="InputToOutput2" class="ScannedOutput"><br><br>
<input type="text" id="InputToOutput3" class="ScannedOutput"><br><br>
<a class="OpenScanner" href=""><button>Open Scanner</button></a>

http://jsfiddle.net/villageboy/cxr6srvo/

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效: https://jsfiddle.net/1o6xL6vg/5/

如果您希望保留其他值(已填充的条形码),则需要将它们添加到返回网址。

$.urlParam = function(name){
    var results = new RegExp('[\?&amp;]' + name + '=([^&amp;#]*)').exec(window.location.href);
    return results[1] || 0;
}

$('.OpenScanner').click(function(){
    var url = window.location.href+"?code=%7BCODE%7D";
    $(this).attr({
        href:'http://zxing.appspot.com/scan?ret='+url+'&SCAN_FORMATS=UPC_A,EAN_13', 
        target:"nw"
    });
});
$(function() {
    alert($.urlParam('code'));
    $('#InputToOutput1').val($.urlParam('code'));
});

我不确定为什么它不能读取GET参数,但这也可能是一个jsfiddle问题。最好在您的服务器上试用。