none
C# 2.0 WebBrowser, Как включить javascript?

    Question

  • Подскажите пожалуйста, как включить яваскрипт в программе, использующей веббраузер?
    На компьютере в IE отключены яваскрипты.

    У меня не получилось так отключить, чтобы веббраузер не выполнял яваскрипты,
    но у человека, у которого программа работает, это как-то получилось.

    К сожалению опять долго и далеко до него достучаться, как тогда с дллками.

    • Edited by INFEL8 Wednesday, July 11, 2012 10:56 AM
    Wednesday, July 11, 2012 10:45 AM

Answers

  • У меня сейчас появилась несколько дней попробоать посмотреть чего там на компьютере.
    То, что я там по ссылке понаписал, всё с того компьютера.

    Ещё пару-тройку дней есть возможность поработать с ним.
    Везде сценарии и активе х включено,, не помогает (.

    Там на компьютере, если просто открывать хтмл файл браузером,
    то выскакивает блокировка внизу браузера,
    у меня тоже так,

    а вот потом, там дальше появляется сообщение "как правило, сценарии безопасны и тд."
    А у меня такого нету.
    Да и больше ни где такого не встречал, чтобы не выключалось особенно.

    Думаю, если получится от него избавиться, и не выключить скрипты,
    то должно всё заработать.

    "По умолчанию" и сброс не помогли

    Копаю через C#.
    Нашёл такой код, в котором у меня при использовании инструкции <!-- saved from.. возникает ошибка.
    Без неё всё нормально.

    Если решить эту проблему, то можно будет с инструкцией запускать хотя бы.
    Хоть в не полномварианте, но работало бы.

    вот код

                mshtml.HTMLDocument CurrentDocument = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
    
                foreach (mshtml.IHTMLStyleSheet style in CurrentDocument.styleSheets)
                {
                    var rules = style.rules;
                }

    Мне местами надо до рулесов докапываться, я их через яваскрипт получаю у себч на компе.
    А с инструкцией и у меня не получается, возникает ошибка доступа по неавторизованности.
    Как бы это дело обойти?

    Похоже, что единственно реальный путь, это что было предложено выше по ссылке.
    http://social.msdn.microsoft.com/forums/en-US/winforms/thread/5b4dc7a8-4d0b-4a15-a5f7-d191f8b26c13/

    и
    http://msdn.microsoft.com/en-us/library/ms537182%28VS.85%29.aspx

    Есть идеи как это реализовать?, совсем не понятно что-то.

    Там что было, не понятно как работает, и не компилируется прямо в таком виде...

    ----

    с нескольких сапйтов собрал код, чтобы компилировалось то, что было по 1-й ссылке.
    правда ещё пока не понял как это должно работать, и пока не работает.

    Компилируется, запускается, а всё равно ошибка доступа.


    Перекопал весь реестр,
    теперь не выскакивает,
    частично(не полностью) заработало.
    но в программе, использующей компонент, всё равно не работает.

    Нашёл полностью браузер с реализованным этим делом, что там по ссылке было,
    тоже не работает...
    Может, конечно, там не правильно что-то реализовано.

    Если использовать ту инструкцию saved from, то часть яваскриптов работает не ругаясь.
    Есть вариант часть яваскриптов выполнить через код проги,
    правда придётся вызывать его из части работающего яваскрипта на странице,
    чтобы не сильно переделывать.
    И как-то обеспечить синхронность выполнения.
    Может получится, если на вызов ругаться не будет..

    ---
    обновка.
    обходной вариант сработал,
    всё самое нужное работает. а что не работает - без того обойтись можно в принципе.
    --------
    обновка.
    Удалось запустить и то, что не совсем необходимо.
    Зашёл в групповые политики в настройки безопасности и-нет эксплорера для локального компьютера.
    Поставил для активных сценариев "включить".
    Было "Не задано".

    Что интересно, у меня на компе тоже "не задано", а работает.
    ПС. на компе, где проблемы, программа групповых политик тоже работает через не то место.
    Только в стандартном режиме.
    В расширенном (по умолчанию) ругается на недоступность чего-то там и активный Х.


    остаётся понять из какой глубины тащит настройку.
    явно выше, чем групповые политики (раз с ней заработало), но ниже обычных зон (0-й точнее) безопасности.
    Глубина в смысле приоритетов.
    • Edited by INFEL8 Tuesday, July 24, 2012 2:08 PM
    • Marked as answer by Abolmasov Dmitry Tuesday, August 14, 2012 7:39 AM
    Friday, July 20, 2012 9:26 AM

All replies

  • Вам надо включить или отключить? Вот топик на эту тему, если непонятно будет спрашивайте. Идея в том, что нужно самостоятельно реализовать класс наследовавшись.
    Wednesday, July 11, 2012 11:34 AM
    Moderator
  • Нужно включить в программе.
    Я пробовал отключить в IE так, чтобы в программе не работал яваскрипт.
    Не получилось что-то.

    Спасибо за ссылку, читаю.
    Wednesday, July 11, 2012 12:10 PM
  • Честно говоря не очень понял что там написано.
    Для чего-то как-то (и при том не понятно зачем) 
    нужно реальзовать "your own security manager".

    Потом человек код выложил с классом-наследником веббраузера, и в нём уже клас реализовывающий этот "security manager".
    Не понятно как он там используется и для чего.

    ниже идёт описание ещё одного интерфейса,
    а ещё ниже MapUrlToZone().

    Что наверное уже к делу не относится, если я правильно понял.

    Я думал есть просто настройка какая-то, которую я не нашёл, чтобы включать/выключать яваскрипты.
    Ну ладно, попробую ещё поразбираться, немного.

    Если не получится, то пусть тогда Ваш ответ будет "ответом".
    Хотя бы что "нет простого решения или готового."..
    Wednesday, July 11, 2012 2:39 PM
  • Попробуйте воспользоватся примером кода из того топики, со всеми исправлениями автора.

    А вообще WebBrowser - это по сути экземляр IE встроенный в ваше приложение и соответсвенно оттуда он все настройки и тянет.


    Для связи [mail]

    Thursday, July 12, 2012 7:07 AM
  • Ну прямо так если скопировать, то не компилируется,

    да даже если и скомпилируется как-нибудь позже, если всё основное так и останется, то не понятно как оно работает.
    Там же просто класс в классе зачем-то.
    И, судя по названию, он там для базового класса сайта.

    Monday, July 16, 2012 5:21 AM
  • тут дополнительная инфа, может поможет Вам подсказать мне решение проблемы

    http://answers.microsoft.com/ru-ru/ie/forum/ie9-windows_7/%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5/0fe9410d-d34f-49e3-a830-0dddf870553a

    Friday, July 20, 2012 8:00 AM
  • Как и сказал выше Дмитрий большую часть настроек WebBrowser берет из настроек IE. В панели управления есть пункт "Свойства обозревателя". Попробуйте для начала сбросить все значения на вкладках до значений по умолчанию, а потом плясать от стартовых настроек и смотреть где что нужно запретить и разрешить.

    Только вот у себя на компьютере вы получите желаемый результат, а на компьютере конечного пользователя он может воспроизвестись, так как у него свои настройки. Что бы вы понимали что не только у вас и у вашей программы такие проблемы, можете запретить в настройках обозревателя отображение картинок, а потом запустить Skype и выбрать "Добавить контакт". В окне добавление вы уведите не красивую картину. Это пример того как локальные настройки влияют на работу программ и как даже крупные разработчики не могут всего учесть.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Friday, July 20, 2012 8:14 AM
    Answerer
  • У меня сейчас появилась несколько дней попробоать посмотреть чего там на компьютере.
    То, что я там по ссылке понаписал, всё с того компьютера.

    Ещё пару-тройку дней есть возможность поработать с ним.
    Везде сценарии и активе х включено,, не помогает (.

    Там на компьютере, если просто открывать хтмл файл браузером,
    то выскакивает блокировка внизу браузера,
    у меня тоже так,

    а вот потом, там дальше появляется сообщение "как правило, сценарии безопасны и тд."
    А у меня такого нету.
    Да и больше ни где такого не встречал, чтобы не выключалось особенно.

    Думаю, если получится от него избавиться, и не выключить скрипты,
    то должно всё заработать.

    "По умолчанию" и сброс не помогли

    Копаю через C#.
    Нашёл такой код, в котором у меня при использовании инструкции <!-- saved from.. возникает ошибка.
    Без неё всё нормально.

    Если решить эту проблему, то можно будет с инструкцией запускать хотя бы.
    Хоть в не полномварианте, но работало бы.

    вот код

                mshtml.HTMLDocument CurrentDocument = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
    
                foreach (mshtml.IHTMLStyleSheet style in CurrentDocument.styleSheets)
                {
                    var rules = style.rules;
                }

    Мне местами надо до рулесов докапываться, я их через яваскрипт получаю у себч на компе.
    А с инструкцией и у меня не получается, возникает ошибка доступа по неавторизованности.
    Как бы это дело обойти?

    Похоже, что единственно реальный путь, это что было предложено выше по ссылке.
    http://social.msdn.microsoft.com/forums/en-US/winforms/thread/5b4dc7a8-4d0b-4a15-a5f7-d191f8b26c13/

    и
    http://msdn.microsoft.com/en-us/library/ms537182%28VS.85%29.aspx

    Есть идеи как это реализовать?, совсем не понятно что-то.

    Там что было, не понятно как работает, и не компилируется прямо в таком виде...

    ----

    с нескольких сапйтов собрал код, чтобы компилировалось то, что было по 1-й ссылке.
    правда ещё пока не понял как это должно работать, и пока не работает.

    Компилируется, запускается, а всё равно ошибка доступа.


    Перекопал весь реестр,
    теперь не выскакивает,
    частично(не полностью) заработало.
    но в программе, использующей компонент, всё равно не работает.

    Нашёл полностью браузер с реализованным этим делом, что там по ссылке было,
    тоже не работает...
    Может, конечно, там не правильно что-то реализовано.

    Если использовать ту инструкцию saved from, то часть яваскриптов работает не ругаясь.
    Есть вариант часть яваскриптов выполнить через код проги,
    правда придётся вызывать его из части работающего яваскрипта на странице,
    чтобы не сильно переделывать.
    И как-то обеспечить синхронность выполнения.
    Может получится, если на вызов ругаться не будет..

    ---
    обновка.
    обходной вариант сработал,
    всё самое нужное работает. а что не работает - без того обойтись можно в принципе.
    --------
    обновка.
    Удалось запустить и то, что не совсем необходимо.
    Зашёл в групповые политики в настройки безопасности и-нет эксплорера для локального компьютера.
    Поставил для активных сценариев "включить".
    Было "Не задано".

    Что интересно, у меня на компе тоже "не задано", а работает.
    ПС. на компе, где проблемы, программа групповых политик тоже работает через не то место.
    Только в стандартном режиме.
    В расширенном (по умолчанию) ругается на недоступность чего-то там и активный Х.


    остаётся понять из какой глубины тащит настройку.
    явно выше, чем групповые политики (раз с ней заработало), но ниже обычных зон (0-й точнее) безопасности.
    Глубина в смысле приоритетов.
    • Edited by INFEL8 Tuesday, July 24, 2012 2:08 PM
    • Marked as answer by Abolmasov Dmitry Tuesday, August 14, 2012 7:39 AM
    Friday, July 20, 2012 9:26 AM
  • Спасибо, что поделились описанием пути решения проблемы

    Для связи [mail]

    Tuesday, August 14, 2012 7:38 AM