Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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重定向:此代码是否存在问题?_Javascript_Jquery - Fatal编程技术网

Javascript url重定向:此代码是否存在问题?

Javascript url重定向:此代码是否存在问题?,javascript,jquery,Javascript,Jquery,也许你能发现一些我看不见的东西: 这是我的密码 if(jQuery.urlParam('returnview')) { var ret = jQuery.urlParam('returnview'); var iid = jQuery.urlParam('iid'); window.location = 'index.php?option=mycomponent&view='+ret+'&Itemid='+iid+'&lang=en';

也许你能发现一些我看不见的东西:

这是我的密码

if(jQuery.urlParam('returnview')) {     
    var ret = jQuery.urlParam('returnview');
    var iid = jQuery.urlParam('iid'); 
    window.location = 'index.php?option=mycomponent&view='+ret+'&Itemid='+iid+'&lang=en';
} else  if(!jQuery.urlParam('returnview')){
  window.location = 'index.php?option=mycomponent&view=myview&Itemid=380&lang=en&sent=1'; 
} else {
  alert('something is dodge');
}
这就是功能:

jQuery.urlParam = function(name){
   var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
   return results[1] || 0;
}
jQuery.urlParam = function(name){
   var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
   return (results && results[0] ? results[0] : false);
}
现在,如果在我的“from”URL中定义了一个“returnview”,它就可以正常工作了。 但是,如果没有定义returnview,则应转到第二种情况,或者即使失败,也会抛出警报

有人能看出我做错了什么吗

谢谢


Jacques

检查
jQuery.urlParam('returnview')下的内容
我很确定,如果不设置值,您将得到未定义的

请尝试
jQuery.urlParam('returnview')==未定义


也可以查看这篇文章:

检查
jQuery.urlParam('returnview')下的内容。
我很确定,如果不设置值,您将得到未定义的

请尝试
jQuery.urlParam('returnview')==未定义


也可以查看这篇文章:

你的第三个条件永远不会被击中,因为你正在测试真/假,所以让我们删除它,留给你:

if(jQuery.urlParam('returnview')) {     
    var ret = jQuery.urlParam('returnview');
    var iid = jQuery.urlParam('iid'); 
    window.location = 'index.php?option=mycomponent&view='+ret+'&Itemid='+iid+'&lang=en';
} else{
  window.location = 'index.php?option=mycomponent&view=myview&Itemid=380&lang=en&sent=1'; 
} 
然后让我们将变量移到ifs之外,并特别检查false(如果返回的值等于false,则需要对原始函数进行更新,我们将在下面执行此操作):

…最后,让我们修复原始函数:

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

我还没有测试过它,但我认为应该可以解决它,因为你的第三个条件永远不会被击中,因为你正在测试真/假,所以让我们删除它,给你留下:

if(jQuery.urlParam('returnview')) {     
    var ret = jQuery.urlParam('returnview');
    var iid = jQuery.urlParam('iid'); 
    window.location = 'index.php?option=mycomponent&view='+ret+'&Itemid='+iid+'&lang=en';
} else{
  window.location = 'index.php?option=mycomponent&view=myview&Itemid=380&lang=en&sent=1'; 
} 
然后让我们将变量移到ifs之外,并特别检查false(如果返回的值等于false,则需要对原始函数进行更新,我们将在下面执行此操作):

…最后,让我们修复原始函数:

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

我还没有测试过它,但我认为应该修复它

只需根据函数是否返回真实值有条件地设置url参数:

var ret = jQuery.urlParam('returnview');
var iid = jQuery.urlParam('iid');

var view = ret || "myview";
var id = iid || "380";

window.location = 'index.php?option=mycomponent&view='+
                   view + '&Itemid=' + id + '&lang=en';
对于
urlParam
函数,您需要确保只捕获参数本身,而不是整个
“&abc=xyz”
段。您只需在所需部分周围添加括号即可捕获该部分,然后获取第二个匹配项(第一个索引)。在取消引用匹配数组之前,请检查它是否为null:

jQuery.urlParam = function(name){
    var re = RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = window.location.href.match(re);
    return results ? results[1] : null;
}

只需根据函数是否返回truthy值有条件地设置url参数:

var ret = jQuery.urlParam('returnview');
var iid = jQuery.urlParam('iid');

var view = ret || "myview";
var id = iid || "380";

window.location = 'index.php?option=mycomponent&view='+
                   view + '&Itemid=' + id + '&lang=en';
对于
urlParam
函数,您需要确保只捕获参数本身,而不是整个
“&abc=xyz”
段。您只需在所需部分周围添加括号即可捕获该部分,然后获取第二个匹配项(第一个索引)。在取消引用匹配数组之前,请检查它是否为null:

jQuery.urlParam = function(name){
    var re = RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = window.location.href.match(re);
    return results ? results[1] : null;
}


+0.25对于“某物是道奇”警报,
else if
应为
else
。第三种情况永远不会发生。布尔表达式为true或false。你注意到了什么问题?你使用firebug吗?如果是,则在第一个
窗口之前的console.debug('index.php?option=mycomponent&view='+ret+'&Itemid='+iid+'&lang=en')。location
并粘贴掉的内容。@imclickingmaniac他自己定义了它,请参阅post…+0.25了解dodge警报
否则If
应该是
else
。第三种情况永远不会发生。布尔表达式为true或false。你注意到了什么问题?你使用firebug吗?如果是,则在第一个
窗口之前的console.debug('index.php?option=mycomponent&view='+ret+'&Itemid='+iid+'&lang=en')。location
并粘贴掉的内容。@imclickingmaniac他自己定义了它,请参阅post…它不能返回
未定义的
:最后一行
返回结果[1]|0结果[1]
未定义的,则code>返回
0
。是的,我的错误。他发布了应该返回0但不会返回的函数。它不能返回
未定义的
:最后一行
返回结果[1]|0结果[1]
未定义的,则code>返回
0
。是的,我的错误。他发布了应该返回0但不会返回的函数。
jQuery.urlParam=function(name){var results=new RegExp('[\?&;]'+name+'=([^&;#]]*).exec(window.location.href);return(results&&results[0]?results[0]:false);}
此函数工作正常。非常小,正确:
(结果和结果[0])?结果[0]:0在末尾。哦,在firebug中启用控制台。看起来你没有打开:)谢谢我点击疯子。。。是这样匆忙完成的:)谢谢@Lewis和imclickingmaniac——组合成功了。现在正在正确重定向。
jQuery.urlParam=function(name){var results=new RegExp('[\\?&;]'+name+'=([^&;\]*]).exec(window.location.href);return(results&&results[0]?results[0]:false);}
此函数工作正常。非常小,正确:
(结果和结果[0])?结果[0]:0在末尾。哦,在firebug中启用控制台。看起来你没有打开:)谢谢我点击疯子。。。是这样匆忙完成的:)谢谢@Lewis和imclickingmaniac——组合成功了。现在正确重定向。