这让我疯狂了两天......我一直在尝试使用他们的外部API将Big Cartel商店集成到一个网站中,但是我遇到了一些让脚本运行的问题。它似乎在Chrome和Safari中如何工作,但在FF和IE中却没有?我试图获取产品的页面是http://www.denimgeek.com/wp-content/featured.html(目前适用于chrome和safari)。
页面的编码如下,我绝不是Javascript程序员,但不知道为什么这在这些浏览器中不起作用? Firefox一直说“控制台没有定义”,它在IE8中不起作用,但在我进入开发人员工具并将页面模式更改为怪癖之后呢?这让我发疯了!
页面的代码如下,我错过了一些简单的东西吗?
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://www.denimgeek.com/wp-content/themes/atlantica/style.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var subdomain = 'denimgeek';
$(function() {
function findImage(url, size) {
if(!size) return url;
var ext = url.match(/\.(\w{2,4}$)/)[1];
var dir = url.substr(0, url.lastIndexOf('/') + 1);
switch(size.toLowerCase()) {
case 'large':
return dir + '300.' + ext;
case 'medium':
return dir + '175.' + ext;
case 'thumb':
return dir + '75.' + ext;
default:
return url;
}
}
$.getJSON('http://api.bigcartel.com/' + subdomain + '/products.js?callback=?', function(products) {
$.each(products, function(i, product) {
console.log(product);
$('#products').append('<li><img src="' + findImage(product.images[0].url, 'large') + '"><br><a href="http://' + subdomain + '.bigcartel.com' + product.url + '">' + product.name + '</a></li>');
});
});
});
</script>
</head> <body> <ol id="products"></ol></body></html>
答案 0 :(得分:4)
嗯..在 Javascript代码中,我们可以找到:
console.log(product);
在没有定义console object
时会抛出错误。
console object
例如由 Firebug 或 Chrome开发人员工具以及IE8 + 开发人员工具定义。
但是如果你禁用这些工具,它会抛出任何一种方式。一个好的做法就是自己捕捉它。我在我的init脚本中使用它:
if(!('console' in window) ) {
window.console = {}
var arr = 'log error warn time timeEnd table profile profileEnd group groupEnd debug dir'.split(' ');
for(var i = 0, len = arr.length; i < len; i++) {
console[arr[i]] = function() { };
}
}
如果您将该代码段放在脚本的开头,那些console.anything
调试输出不会使整个应用程序崩溃。
答案 1 :(得分:1)
没有doctype,你处于怪癖模式。将其添加到您的第一行,看看我们的立场:
<!doctype html>
答案 2 :(得分:0)
你只需要取出console.log,好像你没有firebug它肯定会崩溃ff,或者就像已经安装了控制台的webkit浏览器一样