Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在当前窗口中使用javascript打开带有参数的url在IE和Chrome上失败_Javascript - Fatal编程技术网

在当前窗口中使用javascript打开带有参数的url在IE和Chrome上失败

在当前窗口中使用javascript打开带有参数的url在IE和Chrome上失败,javascript,Javascript,在尝试在当前窗口中使用会话变量作为URL的午餐时,它对Firefox很好,但去掉了Chrome和IE中的参数,但在Firefox中效果与预期一样 我的表单输入字段如下: <input class="ppb-search" placeholder="Search Blog" type="text" id="searchTextDesktop" onKeyPress="SearchText(event, this)"> 在当前窗口中打开包含参数的URL的JavaScript如下所示

在尝试在当前窗口中使用会话变量作为URL的午餐时,它对Firefox很好,但去掉了Chrome和IE中的参数,但在Firefox中效果与预期一样

我的表单输入字段如下:

<input class="ppb-search" placeholder="Search Blog" type="text" id="searchTextDesktop" onKeyPress="SearchText(event, this)">

在当前窗口中打开包含参数的URL的JavaScript如下所示:

<script type="text/javascript">
    function SearchText(e, input) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if(code == 13) { //Enter keycode                                
                var textSearch = document.getElementById("searchTextDesktop").value;
                var url = '$searchPage?search='+textSearch;
                //alert("Test open search URL: "+url); 
                window.location.href=url;
        }
    }
</script>

函数搜索文本(e,输入){
var代码=(e.keyCode?e.keyCode:e.which);
如果(code==13){//输入keycode
var textSearch=document.getElementById(“searchTextDesktop”).value;
var url='$searchPage?search='+textSearch;
//警报(“测试打开搜索URL:+URL”);
window.location.href=url;
}
}

我还尝试了
window.open(url,“\u self”)

@MuradSofiyev-你是对的。我正在解析从vtl到javascript的预期路径,而不是在javascript变量中设置路径。因此,$searchPage变量返回null

解决方案最终是在javascript中设置URL路径,而不是使用后端vtl脚本中设置的$searchPage vtl变量

因此,脚本变成:

`<script type="text/javascript">
var searchPage = "/searchResults/index.dot";    
function SearchText(e, input) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if(code == 13) { //Enter keycode                                
                var textSearch = document.getElementById("searchTextDesktop").value;
                var url = searchPage+'?search='+textSearch;
                //alert("Test open search URL: "+url); 
                window.location.href=url;
        }
    }
</script>`
`
var searchPage=“/searchResults/index.dot”;
函数搜索文本(e,输入){
var代码=(e.keyCode?e.keyCode:e.which);
如果(code==13){//输入keycode
var textSearch=document.getElementById(“searchTextDesktop”).value;
var url=searchPage+'?search='+textSearch;
//警报(“测试打开搜索URL:+URL”);
window.location.href=url;
}
}
`

我猜你没有阻止表单提交,你应该使用encodeURIComponent这是工作问题所在?@Murad Sofiyev-问题是IE和Chrome的
?search='+textSearch
被删除了。因此,该参数不会在URL中解析。