Не уверен, что происходит здесь. Первоначально у меня был код в script.js
, но теперь он реорганизован и готов быть в собственном файле. Поэтому после того, как я закончил рефакторинг, я переместил код на base.js
. Вот html.Файл JavaScript не заполнен
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Cache-control" content="no-cache">
<title>Draw</title>
<link rel='stylesheet' type='text/css' href='style.css'/>
<script src="libraries/jquery-2.1.4.js"></script>
</head>
<body>
<canvas id="canvas">
HTML5 Canvas not supported.
</canvas>
<script type="text/javascript" src="base.js"></script>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
По некоторым причинам, хотя, base.js
отображается как пустой в хромированных инструментов разработчика и script.js
жалуется, что не может найти прототип, определенный в base.js
.
Я знаю, что URL-адрес хорош, потому что я намеренно пропустил его, и в консоли разработчика он кричит на меня о невозможности найти его, пока я не исправлю орфографию. Я знаю, что он не кэшируется, потому что я очистил свой кеш. Наконец, я попробовал просто изменить имя на base_prototype.js
, и он работает.
Почему это происходит?
EDIT: Добавление script.js base.js
//script.js
/**
* Created by carlos on 5/20/15.
*/
var myBase;
$(function() {
myBase = new Base(document.getElementById("canvas"));
myBase.draw(minDim());
});
$(window).resize(function() {
myBase.draw(minDim());
});
function minDim(){
return Math.min($(window).height(),$(window).width());
}
//base.js
/**
* Created by carlos on 5/23/15.
*/
function Base(canvas){
this.canvas = canvas;
this.context = this.canvas.getContext("2d");
this.grids = 40;
this.canvasSize = 0;
this.draw = function(size){
this.canvasSize = size;
this.canvas.width = size;
this.canvas.height = size;
$(this.canvas).height(size);
$(this.canvas).width();
this.drawZeroMatrixStockGrid(0,this.grids,0,this.grids);
this.context.stroke();
};
this.drawZeroMatrixStockGrid = function (startX, endX, startY, endY){
var adjust = this.grids/2;
this.drawMatrixStockGrid(startX-adjust , endX-adjust , startY-adjust, endY-adjust);
};
this.drawMatrixStockGrid = function(startX, endX, startY, endY){
this.context.beginPath();
this.context.transform(.5, -.5, .5, .5, this.canvasSize/2, this.canvasSize/2);
this.context.scale(1,1);
for(var x = startX;x<endX + 1 ;x++){
this.context.moveTo(this.getXCoord(this.canvasSize,this.grids,x),this.getYCoord(this.canvasSize,this.grids,startY));
this.context.lineTo(this.getXCoord(this.canvasSize,this.grids,x),this.getYCoord(this.canvasSize,this.grids,endY));
}
for(var y = startY;y<endY + 1;y++){
this.context.moveTo(this.getXCoord(this.canvasSize,this.grids,startX),this.getYCoord(this.canvasSize,this.grids,y));
this.context.lineTo(this.getXCoord(this.canvasSize,this.grids,endX),this.getYCoord(this.canvasSize,this.grids,y));
}
};
/**
* assumes a square canvas
* TODO use global vars to clean signature
* TODO memoize
* */
this.getXCoord = function (canvasSize, grids, coord){
var delta = canvasSize/(grids);
return delta*coord;
};
this.getYCoord = function(canvasSize, grids, coord){
var delta = canvasSize/(grids);
return delta*coord;
};
}
Это происходит только в Google Chrome? –
Есть ли у вас браузерные аддоны/плагины? Попробуйте отключить их, если что-то вроде adblock блокирует скрипт. – j08691
@OliverBarnwell Случается в сафари тоже. @ j08691 У меня нет плагинов для браузера, которые это делают. –