|
20.03.2009, 14:40 | #1 |
Чайный пьяница
|
Цитата:
Код: var scriptBody = "var cells = window.frames[0].document.getElementsByTagName('TD'); "+ "for(var i = 0; i < cells.length; i++) "+ "{ "+ "var className = cells[i].getAttribute('className'); "+ "if (className && className == 'noteEditedField NotesDataControl_Render_td3') "+ "cells[i].innerHTML = ''; "+ "}"; setTimeout(scriptBody, 2000); UPD - сходу скажу какие косяки могут быть: 1. Ничего не произойдёт, если айфрейм с нотесами не загрузится за 2 секунды 2. При добавлении новых нотесов - в новодобавленных будет показано, кто редактировал. 3. Могут быть проблемы, если будут другие iframe на форме в плане адресации обащений к фрейму.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 20.03.2009 в 15:54. |
|
20.03.2009, 15:34 | #2 |
Участник
|
|
|
20.03.2009, 15:39 | #3 |
Чайный пьяница
|
А вы вставьте код в обработчик OnLoad и попробуйте. У меня заработало. Это не в роде - а вот эдак можно сделать, а скрипт, проверенный на живой системе.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 20.03.2009 в 15:53. |
|
20.03.2009, 17:06 | #4 |
Участник
|
Ну вставил.
Если при открытии формы открыть вкладку Notes быстрее, чем за 2 секунды, то работает. Это понятно. Мы вызываем загрузку содержимого фрэйма до того, как сработает Ваш код. Но если открыть вкладку Notes, скажем, секунды через 3-4 после открытия - не работает. И это тоже понятно - Ваш код запустился через 2 секунды, но содержимого-то ещё не было. |
|
20.03.2009, 17:18 | #5 |
Чайный пьяница
|
Цитата:
Сообщение от Гуревич Денис
Ну вставил.
Если при открытии формы открыть вкладку Notes быстрее, чем за 2 секунды, то работает. Это понятно. Мы вызываем загрузку содержимого фрэйма до того, как сработает Ваш код. Но если открыть вкладку Notes, скажем, секунды через 3-4 после открытия - не работает. И это тоже понятно - Ваш код запустился через 2 секунды, но содержимого-то ещё не было. 2. У меня работает под 7.0 идеально. И если не открывать, и если открывать сразу и если открывать через 10, 15, 25 секунд. Пусть xany будет арбитром, поскольку именно она подняла тему и скрипт нужен именно ей.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 20.03.2009 в 17:23. |
|
20.03.2009, 17:39 | #6 |
Участник
|
Цитата:
Сообщение от a33ik
Пусть xany будет арбитром, поскольку именно она подняла тему и скрипт нужен именно ей.
|
|
23.03.2009, 15:47 | #7 |
Участник
|
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). |
20.03.2009, 17:54 | #8 |
Чайный пьяница
|
Цитата:
Сообщение от Гуревич Денис
Ну вставил.
Если при открытии формы открыть вкладку Notes быстрее, чем за 2 секунды, то работает. Это понятно. Мы вызываем загрузку содержимого фрэйма до того, как сработает Ваш код. Но если открыть вкладку Notes, скажем, секунды через 3-4 после открытия - не работает. И это тоже понятно - Ваш код запустился через 2 секунды, но содержимого-то ещё не было.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: xany (1). |