Изображение не отображается в браузере при размещении на жестком диске: I.E. Firefox, Safari, загружает в Chrome - PullRequest
1 голос
/ 07 января 2011

Мое приложение должно рисовать сетку поверх изображения и предоставлять вам координаты этой сетки.Однако это, похоже, не работает в IE, Safari и Firefox, когда изображение размещено на моей локальной машине.Когда я размещаю фотографию в Picasa, изображения отображаются нормально.Это работает в Chrome.Изображения в конечном итоге будут размещены на моем сервере, но я сначала работаю с ним локально.Я действительно новичок в этом.Любая помощь будет принята с благодарностью.Спасибо

Вот HTML и javascript, который я использую:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/mootools/1.3.0/mootools-yui-compressed.js"></script>
<meta charset=utf-8 />
<title>Grid test</title>
<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<link rel="stylesheet" type="text/css" href="css\grid_style.css">
  <img src="c:\EA_A02_N_1-4_5mM_Xgal_7d_B.cropped.resized.grey.png" id="img"/>
  <script>
  function SetGrid(el) {
  var size = el.getSize();
  var coord = el.getCoordinates();
  var gridTable = new Element('table', {
    'id' : 'gridTable',
    'styles' : {
      'position': 'absolute',
        'width' : size.x,
        'height' : size.y,
        'top' : coord.top,
        'left' : coord.left
    }
  });

  var numcols = 48;
  var numrows = 32;
  var cellSize = {
    width: size.x / numcols,
    height: size.y / numrows
  }

  for (var row = 1; row<=numrows; row++){
      thisRow = new Element('tr', {
          'id' : row,
          'class' : 'gridRow'
      });
      for(var col = 1; col<=numcols; col++){
          thisCol = new Element('td', {
              'id' : col,
              'title': row + ' x ' + col,
              'class' : 'gridCol0'
          });
          thisCol.inject(thisRow, 'bottom');
      };
      thisRow.inject(gridTable, 'bottom');
  }

  gridTable.addEvents({
    // Add the click event to the gridTable
    click: function(e) {
      // Do something with the grid position.
      alert(Math.floor((e.client.x - coord.left) / cellSize.width) 
            + ', ' + Math.floor((e.client.y - coord.top)/ cellSize.height));
    }
  });

  gridTable.inject(el.getParent());
}


window.addEvent('load', function() {
    SetGrid($('img'));
  }
);</script>

</body>
</html>​

1 Ответ

1 голос
/ 07 января 2011

Вероятно, это проблема, связанная с "зоной" безопасности.Браузеры, как правило, разборчивы в разрешении запуска javascript с внешних URL-адресов вместе с кодом, который считывает данные с локального диска, из-за страха утечки конфиденциальной информации.

Работает ли это, если вы также размещаете весь javascript локально?

...