IHTMLTxtRange.execCommand («Copy», false, null) завершается неудачно из-за настроек IE - PullRequest
3 голосов
/ 12 апреля 2010

У нас есть приложение .Net, которое используется для редактирования / рендеринга пользовательских HTML-документов. Он размещается в IE с помощью элементов управления AxSHDocVw.AxWebBrowser. Сначала мы переходим к странице «about: blank», затем изменяем документ, записывая в него наши пользовательские значения. Проблема, с которой мы сталкиваемся, заключается в том, что вызов IHTMLTxtRange.execCommand («Copy», false, null) завершается ошибкой, если мы не включаем параметры безопасности IE в зоне безопасности Интернета (Scripting-> Allow Programmatic Access to Clipboard).

Чтобы обойти настройку безопасности, я попытался указать местный html-файл при навигации. Но этого не происходит, как только я изменяю документ.

Я хочу использовать команду IHTMLTxtRange.execCommand («Copy», false, null), чтобы я мог настраивать наши операции копирования / вставки. Есть ли другой способ сделать это? Пожалуйста, поделитесь своими идеями, чтобы преодолеть эту ситуацию. Благодарю. Sriram

Ответы [ 2 ]

1 голос
/ 12 апреля 2010

Попробуйте внедрить IInternetSecurityManager на управляющем хосте своего веб-браузера, обработайте URLACTION_SCRIPT_PASTE в ProcessUrlAction. Обратите внимание, что есть ошибка в более ранних версиях IE , из-за которой веб-браузер игнорирует обработку URLACTION_SCRIPT_PASTE хоста.

0 голосов
/ 12 апреля 2010

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

  1. Вы уже опробовали ActiveX, и он не работает
  2. С Flash вы можете взаимодействовать с системным буфером обмена - , но только если является частью обработчика событий. См. Flash Player 10 Безопасность .
  3. Javascript не предоставляет способ доступа к буферу обмена.
  4. Не уверен насчет silverlight, но я предполагаю, что это также ограничит доступ к буферу обмена.

Короче говоря, пользователь должен явно дать вашему приложению / сайту разрешение на доступ к буферу обмена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...