none
How to programmly add custom menu item in IE context menu? RRS feed

  • Общие обсуждения

  • I write plug-in (spelling in textarea) for Internet Explorer. And when user right click on not correct word, i need add items in context menu with correct words.

    Please, dont talk me about registry and add entries to it. I need add this items programmly in real time. Can some help, how to realise it on c# (only!).

    Всем привет. Я пишу плагин (проверка орфографии в textarea) для Интернет Эксплорера. И когда пользователь делает правый клик на неправильном слове, ему должно выскочить стандартное контекстное меню + в нем же варианты замены на правильное слово.

    Пожалуйста, не говорите копать в сторону регистра и добавления туда новых ключей. Такой способ работает только после перезапуска браузера. Мне необходимо программно добавлять эти пункты, так сказать в реальном времени. Может кто-то помочь реализовать это на c# (только на нем, не надо ссылки на с++ коды, я не смогу их перевести)

    9 февраля 2012 г. 7:40

Все ответы

  • Hello!

    I think it is impossible, only way - javascript menu on the web site.

    This is Russian MSDN forum, English forum is here. Please ask your question there or ask it in Russian. Thanks.

    Best Regards.


    Для связи [mail]

    10 февраля 2012 г. 7:07
    Модератор
  • Спасибо за ответ) Не заметил, что это для русских форум) Это все же возможно, ведь есть спелчекеры для эксплорера и они таки как-то встраивают свои менюшки.

    Есть у кого еще какие предположения?

    • Изменено likerRr 10 февраля 2012 г. 8:50
    10 февраля 2012 г. 8:47
  • Попробуйте посмотреть в сторону IDocHostUIHandler, как предложено в Reorder IE Context Menu


    Для связи [mail]

    16 февраля 2012 г. 10:33
    Модератор
  • Да, видел такую штуку, даже пытался разобраться, но не понял, как прикрутить к браузеру.. У меня в распоряжении есть объект типа IHTML (библиотека mshtml), ну и собсна DOM документа. Если знаете, как это связать, отпишитесь по возможности
    17 февраля 2012 г. 18:18
  • Если вопрос еще актуален, то попробуйте изучить данный пример:

    IE custom context menu (CSCustomIEContextMenu) плюс вопрос по поводу выделенного текста CustomContext ShowContextMenu gets passed IHTMLElement, but I want the selected text


    Для связи [mail]

    28 февраля 2012 г. 13:02
    Модератор
  • Выделять текст мне незачем. Мне надо по клику на текст определить, какое это слово. Это я сделал, уже давно. Вопрос в другом.

    Ссылка на кастом меню тоже не совсем туда. В этом примере статическое добавление итемов в меню еще до компиляции проекта, а мне надо в ходе работы генерить какие-то итемы.

    Словом, ладно, проект уже перешел от меня другим людям, спасибо всем откликнувшимся

    29 февраля 2012 г. 6:15
  • Здравствуйте likerRr !

    Не поделитесь опытом? Как раз стоит похожая задача...

    12 апреля 2012 г. 19:41
  • Здравствуйте likerRr !

    Не поделитесь опытом? Как раз стоит похожая задача...

    Добрый вечер. Код надо поискать, поэтому пока не выложу (но если очень надо, могу поискать). Копать в сторону DOM. Шарп дает возможность получить доступ к элементам веб страницы подобно жаваскрипту. Вам необходим объект страницы (что-то типа WebBrowser.document или же объект mshtml.document). И у этого объекта есть все функции для работы с веб страницей, при чем синтаксис такой же, как в js. Определение текста по клику - копать в сторону свойства Range. Все на столько просто, что буквально вы сможете вызывать тот же алерт средствами шарпа: (mshtml) obj = WebBrowser.Document; obj.alert('hello world'); Но это лишь пример и не факт, что рабочий :) Все же всплывающие окна я выводил месаджбоксом :) 

    Ну и вообще рекомендую поближе ознакомиться с библиотекой mshtml и плагином, который позволяет писать расширения для IE под шарпом - Spickie (могу ошибаться на несколько букв, т.к. запомнил просто Спики)

    • Изменено likerRr 13 апреля 2012 г. 19:39
    13 апреля 2012 г. 19:36