js中罕见的意外输出的调试帮助
debug help with rare unexpected output in js
我的页面上有以下javascript,应该生成并转到url,而不是发布表单:
var tokenList = ["auto", "usate"];
var dirList = [];
function makeUrl(prov, manuf, model, price){
if (_addToken(prov)){
_joinTokens();
}
if (_addToken(manuf)){
_addToken(model);
_joinTokens();
}
if (price){
return _joinDirs() + "?prezzo=" + price;
}
return _joinDirs();
}
function _addToken(tok){
if (tok){
tokenList.push(tok.replace(/ /g,"_"));
return true;
}
return false;
}
function _joinTokens(){
dirList.push(tokenList.join('-'));
tokenList = [];
}
function _joinDirs(){
if (tokenList){
_joinTokens();
}
var url = '/' + dirList.join('/');
if (url.charAt(url.length-1) == '/'){
url = url.slice(0, -1);
}
return url;
}
它是由以下代码触发的:
$(document).ready(function(){
$('#navForm').submit(function() {
var prov = $("[name=select-provincia]").val();
var manuf = $("[name=select-marca]").val();
var model = $("[name=select-modello]").val();
var price = $("[name=select-prezzo]").val();
var url = makeUrl(prov, manuf, model, price);
window.location = url;
return false;
});
});
我已经很久没有从它的原始python中翻译过这个代码了。我的服务器日志中偶尔会出现一些罕见的错误,显示用户试图访问奇怪的URL,这些URL看起来几乎像两个连接的URL。我从来没有复制过这样的错误,但我最好的猜测是我的javascript出现了问题。最近两次我收到这个错误时,我注意到用户使用的是firefox3.6和iphone。这可能是某种浏览器不兼容吗?我的javascript有什么问题吗?错误只是在userland中吗?
这里有一个错误的url示例供参考:
/auto-usate-pesaro_e_urbino/fiat-500//rimini/fiat-500?prezzo=13000
和两个可能正确的:
/auto-usate-pesaro_e_urbino/fiat-500?prezzo=13000
/auto-usate-rimini/fiat-500?prezzo=13000
任何与优化代码无关的建议都是受欢迎的,因为我不擅长这一点。
不确定是不是这样,但我认为这些奇怪的URL可能是将生成的URL附加到正在查看的页面的URL上的结果。您只生成URL的路径名部分,不包括协议和主机名(http://foo.com
(——可能有些浏览器将此路径解释为相对于当前路径。尝试在URL前面加上协议和主机名。
您可能还想看到这个答案:设置JavaScriptwindow.location并按照建议将URL写入window.location.href
。
相关文章:
- 如何在vs2002中调试html页面
- 在JavaScript中输出转义字符
- 如何在jQuery中将函数的输出分配给变量
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- Javascript,输出结果后页面不断刷新
- 如何在visualstudio中调试web api时编辑javascript文件
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- Datetime格式为Friendly Time.Moment JS输出错误
- 如何将angularjs中的javascript字符串输出为循环数组
- 如何调试Javascript代码或函数
- HTML5FileReader输出到D3.js图表
- 调试Javascript时如何在PHPStorm中输出到控制台
- 爬行:将调试输出写入控制台
- 调试时如何查看document.write的输出
- 启动节点调试服务器后,Grunt停止输出信息
- js中罕见的意外输出的调试帮助
- 表示读体和调试输出
- MozillaWebExtensionneneneba API存储-带断点和不带断点的调试会导致不同的输出
- 是否可以覆盖JavaScript的toString()函数以提供有意义的调试输出