|
|
#21 |
|
Чайный пьяница
|
Цитата:
Сообщение от Гуревич Денис
Ну вставил.
Если при открытии формы открыть вкладку Notes быстрее, чем за 2 секунды, то работает. Это понятно. Мы вызываем загрузку содержимого фрэйма до того, как сработает Ваш код. Но если открыть вкладку Notes, скажем, секунды через 3-4 после открытия - не работает. И это тоже понятно - Ваш код запустился через 2 секунды, но содержимого-то ещё не было.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
| За это сообщение автора поблагодарили: xany (1). | |
|
|
#22 |
|
Moderator
|
А нельзя к элементу закладки на на OnClick его приатачить?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. ![]() MS Certified Dirty Magic Professional
|
|
|
|
|
#23 |
|
Чайный пьяница
|
Думаю можно. Если можно - в понедельник выложу решение
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
|
#24 |
|
Консультант-джедай
|
Я не совсем понял... Вы не можете задействовать IE Developer Toolbar для всплывающего окна?
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога
|
|
|
|
|
#25 |
|
Участник
|
2 a33ik:
У меня и под 6-м и под 7-м IE Ваш код не работает. Вернее, работает так, как я описал выше. Мне конечно же было бы интересно почитать Ваше объяснение, почему он должен работать как-то иначе. Но поскольку изначальная цель была помочь человеку, то на этом тему можно было бы закрыть... Но тут у меня созрело вот такое решение: Код:
if(crmForm.FormType == 2 || crmForm.FormType == 3 || crmForm.FormType == 4) {
var notesFrame = document.getElementById('notescontrol');
var notesWindow = document.frames['notescontrol'];
notesFrame.attachEvent('onreadystatechange', hideEditedFields);
function hideEditedFields() {
if(notesFrame.readyState != 'complete') {
return;
}
var newStyle = notesWindow.document.createStyleSheet();
newStyle.addRule("TD.noteEditedField", "display:none");
newStyle.addRule("TD.noteEditedtedField", "display:none");
}
}1. Ничего не произойдёт, если айфрейм с нотесами не загрузится за 2 секунды Тут IFrame может грузиться сколько угодно, а поля "edited by" скроются сразу после загрузки. 2. При добавлении новых нотесов - в новодобавленных будет показано, кто редактировал. Тут при добавлении не будет показано, кто редактировал. 3. Могут быть проблемы, если будут другие iframe на форме в плане адресации обащений к фрейму. Тут обращение к IFrame не по индексу, а по id, поэтому на форме может быть сколько угодно других фрэймов, они никак не помешают. |
|
|
|
| За это сообщение автора поблагодарили: a33ik (1), xany (1). | |
|
|
#26 |
|
Чайный пьяница
|
Цитата:
Сообщение от Гуревич Денис
2 a33ik:
У меня и под 6-м и под 7-м IE Ваш код не работает. Вернее, работает так, как я описал выше. Мне конечно же было бы интересно почитать Ваше объяснение, почему он должен работать как-то иначе. Но поскольку изначальная цель была помочь человеку, то на этом тему можно было бы закрыть... Но тут у меня созрело вот такое решение: Код:
if(crmForm.FormType == 2 || crmForm.FormType == 3 || crmForm.FormType == 4) {
var notesFrame = document.getElementById('notescontrol');
var notesWindow = document.frames['notescontrol'];
notesFrame.attachEvent('onreadystatechange', hideEditedFields);
function hideEditedFields() {
if(notesFrame.readyState != 'complete') {
return;
}
var newStyle = notesWindow.document.createStyleSheet();
newStyle.addRule("TD.noteEditedField", "display:none");
newStyle.addRule("TD.noteEditedtedField", "display:none");
}
}1. Ничего не произойдёт, если айфрейм с нотесами не загрузится за 2 секунды Тут IFrame может грузиться сколько угодно, а поля "edited by" скроются сразу после загрузки. 2. При добавлении новых нотесов - в новодобавленных будет показано, кто редактировал. Тут при добавлении не будет показано, кто редактировал. 3. Могут быть проблемы, если будут другие iframe на форме в плане адресации обащений к фрейму. Тут обращение к IFrame не по индексу, а по id, поэтому на форме может быть сколько угодно других фрэймов, они никак не помешают.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
|
|
#27 |
|
Участник
|
Цитата:
Сообщение от Гуревич Денис
2 a33ik:
У меня и под 6-м и под 7-м IE Ваш код не работает. Вернее, работает так, как я описал выше. Мне конечно же было бы интересно почитать Ваше объяснение, почему он должен работать как-то иначе. Но поскольку изначальная цель была помочь человеку, то на этом тему можно было бы закрыть... Но тут у меня созрело вот такое решение: Код:
if(crmForm.FormType == 2 || crmForm.FormType == 3 || crmForm.FormType == 4) {
var notesFrame = document.getElementById('notescontrol');
var notesWindow = document.frames['notescontrol'];
notesFrame.attachEvent('onreadystatechange', hideEditedFields);
function hideEditedFields() {
if(notesFrame.readyState != 'complete') {
return;
}
var newStyle = notesWindow.document.createStyleSheet();
newStyle.addRule("TD.noteEditedField", "display:none");
newStyle.addRule("TD.noteEditedtedField", "display:none");
}
}1. Ничего не произойдёт, если айфрейм с нотесами не загрузится за 2 секунды Тут IFrame может грузиться сколько угодно, а поля "edited by" скроются сразу после загрузки. 2. При добавлении новых нотесов - в новодобавленных будет показано, кто редактировал. Тут при добавлении не будет показано, кто редактировал. 3. Могут быть проблемы, если будут другие iframe на форме в плане адресации обащений к фрейму. Тут обращение к IFrame не по индексу, а по id, поэтому на форме может быть сколько угодно других фрэймов, они никак не помешают. Все таки в споре рождается истина. Спасибо за скрипт. |
|
|