Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Опция контекстного меню в ИЕ


Автор: Bitman 7.6.2005, 10:03
Вот такой скриптик, вызываемый через Software\Microsoft\Internet Explorer\MenuExt в реестре, т.е. из меню по правой кнопке.

Код

<script language="javascript">

if (external.menuArguments.document.F1 == null) {
  alert("Этот документ не содержит необходимой информации.");
}
else {
  var all_str = "sd4: " + external.menuArguments.document.F1.sd4.value + "\n";
  all_str += "User-Agent: " + window.navigator.userAgent + "\n";
  all_str += "Cookie: " + external.menuArguments.document.cookie + "\n";
  window.clipboardData.setData('Text',all_str);
  alert("Ok.");
}

</script>


Его смысл - запихать в буфер куки, User-Agent, и значение поля sd4 из некой формы F1.

Собственно вопрос, почему не работает в IE 5.0? И как его изменить, чтобы работал все же под IE 5.0?

Заранее спасибо.

Автор: Sardar 8.6.2005, 00:40
Странно, расширение контекстного меню поддерживаеться с IE4.0. ClipboardData существует начиная с IE5.0, так что всё должно работать...
Выложи ошибку, строку и слова какими ИЕ ругался.


Автор: Bitman 8.6.2005, 08:42
К сожалению, ничего полезного в сообщении.
The instruction at "..." referenced memory at "0x00000084". The memory could not be "read".
Click on OK to terminate the program

smile(

Экспериментальным путем удалось выяснить что IE 5 срубается на строчке:
Код

window.clipboardData.setData('Text',all_str);

Автор: Sardar 8.6.2005, 11:32
Тогда это бага ИЕ, раз он левую память пытаеться прочесть. Думаю это не фикситься smile

Попробуй заюзать окошко что пришло:
Код
//window.clipboardData.setData('Text',all_str);
external.menuArguments.clipboardData.setData('Text',all_str);

Если не сработает, то напиши в открываемой странице функцию, что заюзает clipboardData на своём окошке. Но тогда твоя опция меню будет работать только на этой страничке smile

Автор: Bitman 8.6.2005, 11:57
Вот оно!
Наверное с window какие то проблемы, т.к. external.menuArguments к фрейму по факту обращается. Спасибо, мил человек, с external.menuArguments.clipboardData все работает smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)