webbrowser и java

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

webbrowser и java

Сообщение MeMBus » 20.04.2007 (Пт) 7:21

Доброго времени суток уважаемые. Вопрос по сабжу. Есть html в теле которого есть java (<script language="JavaScript" type="text/javascript">). При открытии данного файла через IE, все нормально работает. Через webbrowser пишет «Ошибка сценария IE». Страницу загружаю в wb через innerHTML. Где копать?
Бороться и искать, найти и перепрятать!

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 20.04.2007 (Пт) 9:30

Navigate2 юзать надо или ищи здесь пример загрузки страницы через стрим без сохранения на диск

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 20.04.2007 (Пт) 10:41

Konst_One, а причем тут Navigate2 и сохранение?
Страница формируется кодом, и выводится через innerHTML, с этим проблем нет. Проблема в том что в сгенерированной странице есть java код, который выполняет подсветку и т.п., так вот если такую же страницу пустить через IE, все ОК, а в wb происходит ошибка. Нужно что-то типа javaenabled я так понимаю.
Бороться и искать, найти и перепрятать!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.04.2007 (Пт) 14:09

Раз происходит ошибка, значит скрипт выполняется. Выясни на какой строке она происходит, мб станет понятно почему.
Лучший способ понять что-то самому — объяснить это другому.

Cytron
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 266
Зарегистрирован: 15.02.2007 (Чт) 21:09

Сообщение Cytron » 20.04.2007 (Пт) 15:18

У меня тоже когдато такое было. Потом само пропало :roll:

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 21.04.2007 (Сб) 13:09

Antonariy, ошибка возникает в местах обращения к java-коду. Если делать через navigate2 как писал Konst_One то код отрабатывает, но такой решение не подходит.
через стрим без сохранения на диск

Это что?
Бороться и искать, найти и перепрятать!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.04.2007 (Сб) 19:33

ошибка возникает в местах обращения к java-коду
Смысла в этой фразе нет. Либо скипт исполняется, либо не исполняется из-за ошибки, либо не исполняется из-за ограничений безопасности.

Страницу выложить можешь?
Лучший способ понять что-то самому — объяснить это другому.

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 22.04.2007 (Вс) 8:17

Пример страницы с примером вывода данной страницы в wb.
Хотелось бы обойтись без navigate2.
Вложения
htmldata.zip
страница
(17.28 Кб) Скачиваний: 53
vbview.zip
код
(383 байт) Скачиваний: 51
Бороться и искать, найти и перепрятать!

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 23.04.2007 (Пн) 5:40

Я так понимаю, что в данном случае java не выполняется, потому что должен быть расположен в <head> документа, innerHTML его обходит. Вопрос, как загрузить это в <head>?
P.S. Так понимаю нужно смотреть HTMLHeadElement?
Бороться и искать, найти и перепрятать!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.04.2007 (Пн) 9:47

Код: Выделить всё
Public Sub WBShowNewMessage()
    Dim iFF As Long
    Dim TempString As String
    Dim HtmlDoc As MSHTML.HTMLDocument
    Dim i As Long

    iFF = FreeFile()
    Open App.Path & "\csmessnew.htm" For Binary As #iFF
        TempString = Space$(LOF(iFF))
        Get #iFF, 1, TempString
    Close #iFF

    Set HtmlDoc = frmShow.wbrShow.Document
    HtmlDoc.createStyleSheet vSetting.HtmlStyle
    HtmlDoc.body.innerHTML = TempString
End Sub
MeMBus писал(а):Страница формируется кодом
Лол. Считывание файла в строку теперь называется так заумно?
MeMBus писал(а): и выводится через innerHTML, с этим проблем нет
С этим как раз проблема. Нельзя загружать целый документ в innerHTML какого-либо элемента. Чтобы все работало, обязательно нужно загружать страницу через Navigate2 или document.location.href. А в каком, кстати, состоянии находится wbrShow, когда ты начинаешь домогаться его тела? Из кода этого не видно, а при загрузке формы документ еще недоступен.
MeMBus писал(а):При открытии данного файла через IE, все нормально работает.
IE таки делает Navigate2.

Тебе больше подойдет это. Будет работать не все, но возможно тебе хватит.
Код: Выделить всё
Dim HtmlDoc As MSHTML.IHTMLDocument
Set HtmlDoc = frmShow.wbrShow.Document
HtmlDoc.write TempString
Еще зацени тег <base>, с ним можно будет не создавать css этим способом: HtmlDoc.createStyleSheet. И картинки будут грузицца.
Лучший способ понять что-то самому — объяснить это другому.

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 23.04.2007 (Пн) 10:20

Antonariy писал(а):Лол. Считывание файла в строку теперь называется так заумно?

Нет. Это я пример к странице для наглядности сделал.
Antonariy писал(а):С этим как раз проблема. Нельзя загружать целый документ в innerHTML какого-либо элемента.

Считаю что в данном случае innerHTML применимо к <body></body>, если неправ, поправь.
Antonariy писал(а):Чтобы все работало, обязательно нужно загружать страницу через Navigate2

ОК, попробую реализовать через него.
Antonariy писал(а):А в каком, кстати, состоянии находится wbrShow, когда ты начинаешь домогаться его тела?

Жду ReadyState на COMPLETE.
Antonariy писал(а):Тебе больше подойдет это. Будет работать не все, но возможно тебе хватит.

Не подходит. Скрипт не выполняется.
Вопрос открыт. + Как добраться до <head></head>?
Бороться и искать, найти и перепрятать!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 23.04.2007 (Пн) 10:46

Считаю что в данном случае innerHTML применимо к <body></body>, если неправ, поправь.
Осел считает иначе. Хочешь переупрямить осла?
Жду ReadyState на COMPLETE.
По какому адресу?
Не подходит. Скрипт не выполняется.
Который? <a href="javascript:emoticon у меня выполняется.
Как добраться до <head></head>?
document.getElementsByName("head")(0)
document.documentElement.children(0)
document.childNodes(0)

А зачем?
Лучший способ понять что-то самому — объяснить это другому.

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 24.04.2007 (Вт) 3:19

Antonariy писал(а):
Жду ReadyState на COMPLETE.
По какому адресу?

По адресу navigate2
Antonariy писал(а):
Не подходит. Скрипт не выполняется.
Который? <a href="javascript:emoticon у меня выполняется.

Этот у меня выполняется (частично, при наведении да, при нажатии нет), не выполняется onMouseOver.
Antonariy писал(а):
Как добраться до <head></head>?
document.getElementsByName("head")(0)
document.documentElement.children(0)
document.childNodes(0)
А зачем?

Вот интересует каким образом ты реализуешь «редактирование» тэгов в <head>, так и не смог добраться (хотел банально попробовать вставить кусок кода туда)?
Бороться и искать, найти и перепрятать!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 24.04.2007 (Вт) 9:24

По адресу navigate2
Ты его скрываешь?
Этот у меня выполняется (частично, при наведении да, при нажатии нет), не выполняется onMouseOver.
У меня выпоняются все скрипты.
Вот интересует каким образом ты реализуешь «редактирование» тэгов в <head>, так и не смог добраться (хотел банально попробовать вставить кусок кода туда)?
Я не реализую этого в загруженном документе и не понимаю зачем это нужно. Я либо формирую head строкой и загружаю через write, либо пишу сразу все что нужно в шаблон и не имею никакого гемороя. А вообще зацени кнопку F2 и MSDN. Все, что можно сделать с document.getElementsByName("head")(0), написано там.
Вложения
htmldata.rar
(1.6 Кб) Скачиваний: 44
Лучший способ понять что-то самому — объяснить это другому.

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 24.04.2007 (Вт) 10:57

Antonariy, в чем отличие «формирования» через write от navigate?
Бороться и искать, найти и перепрятать!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 24.04.2007 (Вт) 11:12

Тем, что через write не будут работать относительные пути.
Лучший способ понять что-то самому — объяснить это другому.

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 24.04.2007 (Вт) 12:19

...пока сделал все через navigate, вроде как работает, буду дальше делать...
Antonariy, Konst_One, респект за наводки.
Бороться и искать, найти и перепрятать!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 89

    TopList