Переменные w
и h
в функции img.onload
находятся не в той же области, что и в функции getMeta()
. Один из способов сделать это:
Fiddle: http://jsfiddle.net/ppanagi/28UES/2/
function getMeta(varA, varB) {
if (typeof varB !== 'undefined') {
alert(varA + ' width ' + varB + ' height');
} else {
var img = new Image();
img.src = varA;
img.onload = getMeta(this.width, this.height);
}
}
getMeta("http://snook.ca/files/mootools_83_snookca.png");
Решение:
проблемой, это сложилось, было использование основной страницы. Я заставил его работать путем установки кода статуса позже в жизненный цикл страниц, очевидно, рендеринг основной страницы сбрасывал его, таким образом, я переопределил метод рендеринга и установил его после того, как рендеринг был завершен.
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
Response.StatusCode = 404;
}
[еще 1111] работа могла быть сделана для обнаружения точно, когда основная страница устанавливает состояние, но я оставлю это Вам. <час>
Исходное Сообщение:
я смог заставить тестовое веб-приложение хорошо работать, хорошо оно, по крайней мере, отобразило пользовательскую ошибочную страницу и возвратило 404 кода статуса. Я не могу сказать Вам что не так с Вашим приложением, но я могу сказать Вам, что я сделал:
1) Отредактированный web.config для пользовательских ошибок:
<customErrors mode="On"> <error statusCode="404" redirect="404.aspx"/> </customErrors>
2) Добавленный 404.aspx страница и набор код статуса к 404.
public partial class _04 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.StatusCode = 404; } }
Thats об этом, если я перехожу к какому-либо расширению страницы, которое обрабатывается Asp. Сеть и не существует, мой журнал скрипача ясно показывает 404, вот заголовок:
HTTP/1.1 404 Not Found Server: Microsoft-IIS/5.1 Date: Sun, 07 Dec 2008 06:04:13 GMT X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Length: 533
Теперь, если я перехожу к странице, которая не обрабатывается Asp. Сеть, как htm файл, пользовательская страница не показывает и 404, который настроен IIS, отображен.
Вот сообщение, которое вдается еще в некоторые подробности, которые могут быть полезны для Вас и Вашей проблемы, мой тест действительно делает перенаправление к новой странице, таким образом, URL требуемого файла в значительной степени потерян (кроме в строке запроса).
Google 404 и.NET Пользовательские Ошибочные Страницы
Ответ Шпиона Заголовка:
HTTP/1.1 404 Not Found
Date: Sun, 07 Dec 2008 06:21:20 GMT
После большого тестирования и поиска и устранения неисправностей кажется, что определенные поставщики услуг хостинга могут вмешаться в код возврата. Я смог обойти это путем применения "взлома" в содержании.
<%
// This code is required for host that do special 404 handling...
Response.Status = "404 Not Found";
Response.StatusCode = 404;
%>
Это позволит странице возвращать корректный код возврата несмотря ни на что.
Можно использовать ниже кода:
Response.TrySkipIisCustomErrors = True
Response.Status = "404 Not Found"
Response.AddHeader("Location", "{your-path-to-your-404-page}")
У меня была аналогичная проблема. Я хочу показать настраиваемую страницу как 404 (это ASPX), и она отлично работала на localhost, но как только удаленный посетитель подключился, они получали общий IIS 404.
Решение. к этому нужно было добавить
Response.TrySkipIisCustomErrors = true;
Перед изменением Response.StatusCode.
Найдено у Рика Стрела http://www.west-wind.com/weblog/posts/745738.aspx