Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2014.10.12;
Скачать: [xml.tar.bz2];

Вниз

Плагин. Как это работает?   Найти похожие ветки 

 
[ВладОшин] ©   (2014-03-02 23:46) [0]

Есть ПО, чужое. ПО предоставляет методы управления собой. Один из них такой: надо прописать в настройках html страницу (расположенную локально или адрес),
ПО подгрузит эту страницу
и на странице можно вызывать JS

т.е. буквально, делаешь простой html, пишешь там
а-ля
<input
type="button"
onclick=ОБЪЕКТ_Х.МЕТОД(ПАРАМЕТР)
</input>
и при клике по кнопке оно срабатывает. Например, окно красится
onclick=COLOR.FILL(MAIN_FORM)
при клике красится именно все окно, не только та закладка, куда встроен IE (т.к. походу IWebBrowser2 это)

меня интересует
Где определен этот ОБЪЕКТ_Х?
Можно как то без html с ним работать?


 
[ВладОшин] ©   (2014-03-02 23:53) [1]

и когда страница подгрузится, правой кнопкой по ней, "показать исходный код"
а там твой же код html, 1:1,  и ничего про ОБЪЕКТ_Х не написано. Но JS его же вызывает как-то. Как?


 
Styx   (2014-03-02 23:57) [2]


> Можно как то без html с ним работать?

Вряд ли. Можно, наверное, в страничку засунуть ActiveX, которому разрешить взаимодействовать с JS - ну а с ActiveX-ом Вы будете работать, как уж захотите.


 
[ВладОшин] ©   (2014-03-03 00:11) [3]

не.. ActiveX то ПО и так разрешает использовать.. так в настоящий момент и делаем.

задача как раз перейти от ActiveX к .. К чему?
Задача завести эту волынку и под никсами (хм.. ну, там походу значит не IE. Вернее, под win похоже IE
а под никсами не известно что. Но оно тоже показывает страницу и работает с JS-вызовами внутри нее)

А хотелось бы слать по сети команды - а оно что бы исполняло.

я тут с WebSocket заморачивался недавно.. Что бы подсунутая этому ПО страница открыла коннект к серверу и получала от него команды по вебсокет технологии, а потом в зависимости от команд дергала JS.

Но это.. лишнее звено. Да и обкатать еще надо..
Хотелось бы как-то напрямую дергать тот ОБЪЕКТ_Х. Как нибудь..


 
Styx   (2014-03-03 00:30) [4]

Если бы под win было написано extrnded.ОБЪЕКТ_Х.МЕТОД(ПАРАМЕТР) - то понятно, как это делается - http://delphidabbler.com/articles?article=22&part=1
Без extended - фиг знает... но, в принципе, ничего не мешает софтине все нужные объекты вставить в DOM после загрузки страницы...
Но только толку от этого.
Вариант

> Что бы подсунутая этому ПО страница открыла коннект к серверу
> и получала от него команды по вебсокет технологии, а потом
> в зависимости от команд дергала JS.

звучит очень хорошо - почему лишнее звено?


 
[ВладОшин] ©   (2014-03-03 00:45) [5]


> почему лишнее звено?

да не.. идея хороша.
а лишней кажется потому что + еще одно звено.

ну и я только принципиальность схемы проверил. Работает, вроде.
Но боюсь шишки еще все впереди, когда что-то как подвиснет/слажает..  
а каждые минуты простоя грозят вылиться в зарплату :)

если б они сделали обычный telnet..


 
bems ©   (2014-03-03 02:05) [6]

жаваскриптовому объекту window можно присваивать expando-свойства, сам не проверял, но кажется если присвоить туда вариант, в который запихнут IDispatchEx можно сделать и то что ты говоришь
этот твой ОБЪЕКТ_Х это же свойство объекта window?


 
tmp   (2014-03-03 03:40) [7]

По описанию довольно кривая костылявая штука. Пример как не надо делать.
Какой смысл повторять?

З.Ы. IE показывает исходный HTML без изменений. Прога навставляла туды своих JS скриптов и всё ясно.


 
историк   (2014-03-03 09:37) [8]


> этот твой ОБЪЕКТ_Х это же свойство объекта window?

ну, видимо..
только пока не понимаю, и что. Как до него достучаться, если оно уже загружено в другое ПО, а там
>> Прога навставляла туды своих JS скриптов и всё ясно.

И потом, и главное,  надо что бы под никсами работало. Про IDispatchEx  пока не прочитал, только мельком, но по первым впечатлениям -  это муторно и не понятно чем лучше вебсокета.
--


> По описанию довольно кривая костылявая штука. Пример как
> не надо делать.
> Какой смысл повторять?

Что именно - кривая костылявая?

>>  IE показывает исходный HTML без изменений. П
ok. Спасибо, только подозревал такое.


 
ВладОшин ©   (2014-03-03 09:42) [9]

is me ^)

> историк   (03.03.14 09:37) [8]


"спалилсо" :)


 
Sha ©   (2014-03-03 11:11) [10]

> Styx   (03.03.14 00:30) [4]

так и сделано


 
bems ©   (2014-03-03 16:27) [11]


> Про IDispatchEx  пока не прочитал, только мельком, но по
> первым впечатлениям -  это муторно и не понятно чем лучше
> вебсокета

а я не говорю что лучше, это я высказал предположение на тему "как это работает". Хост веб-броузера делает окну IDispatchEx::GetDispID с флажком fdexNameEnsure. Потом делает IDispatchEx::InvokeEx с полученным DispID и флагом DISPATCH_PROPERTYPUT. То что он записывает тоже реализует IDispatchEx, поэтому по идее должно бы быть доступно из жаваскрипта.

Действителньо это не отвечает на вопрос как лучше всего этим управлять


 
ВладОшин ©   (2014-03-03 17:12) [12]

Ясно. Спасибо.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2014.10.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.002 c
15-1393867151
Дмитрий СС
2014-03-03 21:19
2014.10.12
html5 для мобил и планшетов.


15-1394137803
Юрий
2014-03-07 00:30
2014.10.12
С днем рождения ! 7 марта 2014 пятница


2-1382846989
Серёжка программист
2013-10-27 08:09
2014.10.12
XML


15-1394095025
Demo
2014-03-06 12:37
2014.10.12
Категории в должности


15-1393992591
big_djo
2014-03-05 08:09
2014.10.12
Что Выбрать C# или С++/CLR ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский