Обновление 1:
Невозможно воспроизвести это на компьютере коллеги (такая же установка, как у меня), поэтому я предполагаю, что это проблема моей рабочей станции, а не общая.
Буду признателен, если кто-нибудь закроет этот вопрос, поскольку у меня недостаточно репутации, чтобы сделать это самому.
@MatthewMartin. Спасибо за ваши комментарии :-)
Обновление 2:
В отличие от моего коллеги, на моем компьютере установлены VS90sp1-KB945140-ENU.exe (SP1) и VS90SP1-KB957912-x86.exe (исправление JS Intellisense). Это появляется - единственное различие между нашими настройками. Я удалил их обоих, но это не решило мою проблему.
На моей странице asp.net (C#) есть немного Javascript для изменения размера объекта, когда пользователь изменяет размер окна.
Когда я открываю страницу с помощью IE6 на моем сервере DEV (IIS), это работает.
Когда я открываю страницу с помощью IE6 через VS2008, используя F5 или CTRL-F5 (оба из которых запускают сервер разработки ASP.NET), это терпит неудачу. Кажется, входит бесконечный цикл изменения размера, когда функция adjSpreadsheetSize запускает событие window.resize, которое вызывает adjSpreadsheetSize ... Повторять до бесконечности
Я вижу довольно много людей, которые жалуются, что IE6 не может должным образом обрабатывать события onresize, но, похоже, ни у кого нет этой конкретной проблемы.
Есть идеи, почему этот код работает на IIS, но не на сервере разработки ASP.NET?
Вот соответствующая часть кода:
[snip]
<head>
[snip]
<script language = "javascript" type = "text/javascript">
window.onresize = adjSpreadsheetSize;
window.onload = pageSetup;
//Change spreadsheet size to fill the window (viewport) below the entry form
function adjSpreadsheetSize() {
var objSS = document.getElementById("OWC_data");
var winWidth = document.documentElement.clientWidth;
var winHeight = document.documentElement.clientHeight;
winHeight -= document.getElementById('form_body').offsetHeight;
objSS.height = winHeight;
objSS.width = winWidth;
return false;
}
function pageSetup() {
adjSpreadsheetSize();
}
</script>
[snip]
</head>
<body>
<form id = "form1" runat = "server" action = "rawdata.aspx" method = "get">
<div id = "form_body">
[snip]
</div>
</form>
<div id = "OWC_container">
<object id = "OWC_data" classid = "clsid:0002E559-0000-0000-C000-000000000046">
</object>
</div>
Моя установка:





Поскольку это объект activex, который вы пытаетесь загрузить, возможно, ваш MSIE настроен на доверие http: // localhost больше, чем http: // локальный: 1235 / foo?
Другие отличия IIS от сервера разработки ASP.NET:
IIS передает только некоторые файлы фильтру aspnet, сервер разработки ASP.NET полностью переключает на IIS.
Кроме того, иногда изменение номера порта приводит к изменению поведения.
Я добавил alert("Viewport: " + document.documentElement.clientHeight + " - formHeight: " + formHeight + " = " + winHeight);
По какой-то причине div "form_body" переключается между "421" и "435" (разница в 14). Поэтому я добавил границу, чтобы попытаться увидеть, где происходит изменение ...
<div style = "border: solid 1px red;" id = "form_body">
И когда граница есть, изменение размера работает. Легко воспроизводится ... добавьте стиль границы, и изменение размера сработает 3 ~ 5 раз. Удалите бордюр, и он постоянно срабатывает, пока я сижу и смотрю на него.
Какого черта?