Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите!!! Вопрос относиться к кнопке и событию. (https://javascript.ru/forum/dom-window/14609-pomogite-vopros-otnositsya-k-knopke-i-sobytiyu.html)

windrunner2011 23.01.2011 08:27

Помогите!!! Вопрос относиться к кнопке и событию.
 
В общем дали задание по работе. Я недавно устроился. Мне нужно доказать что я что то могу. Знаете мультикиоски по оплате за сотовую связь? Мне нужно программно нажать на кнопку там.

Все окна представляют собой страницы html. На каждой странице описываются объекты 8 кнопок (class id кнопки, откуда брать изображение когда активна, нажата, неактивна, все значения одинаковые). На каждой странице можно сделать их видимыми-невидимыми. То активна кнопка или нет на странице нету, приходит с хоста.

Мне нужно изменить одну страницу. Там одна кнопка активная. Ее я сделал невидимой. Создал свою кнопку, представляющую собой объект IMG. После нажатия на мою кнопку, через 3 секунды должна программно нажаться настоящая кнопка.

Я таймер, анимацию все сделал. Осталось нажать на настоящую кнопку. Но вот проблема!!! Метод CLICK не работает!!!

На моей кнопке-изображении метод CLIK работает. А на настоящей нет. В чем может быть причина. Кто знает? Подскажите...

monolithed 23.01.2011 10:38

Цитата:

Сообщение от windrunner2011
общем дали задание по работе. Я недавно устроился. Мне нужно доказать что я что то могу.

искренне сочувствую работодателю.

windrunner2011 23.01.2011 14:33

Цитата:

Сообщение от monolithed (Сообщение 89252)
искренне сочувствую работодателю.

Работадателю сочувствия не нужны. Результат нужен.

Gvozd 23.01.2011 14:53

Цитата:

Сообщение от windrunner2011
Работадателю сочувствия не нужны. Результат нужен.

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

PS незачем создавать более одной темы

windrunner2011 23.01.2011 16:23

ничего не можете и не собирается? А что я тему создал тогда раз не собираюсь? Глупо с вашей стороны. Тут есть люди которые может давно изучают. Если знаете подскажите. Не знаете зачем тратить мое и ваше время на выяснения всякие? Кто кому сочувствует. Что за глупость. Я ищу по форумам, по примерам. Тем более я не как javascript программист устраивался. требует надо сделать. Вот и весь разговор.

Aetae 23.01.2011 16:47

>Тем более я не как javascript программист устраивался.
А как кто?

И ввообще без примера - хз что там у вас такое.
Мб сделать фальш.кнопка.onclick = наст.кнопка.onclick если там что-то навешано, лол?)))

windrunner2011 23.01.2011 18:59

Цитата:

Сообщение от Aetae (Сообщение 89300)
>
А как кто?

Ну не как чистый программист с углубленным знанием одного языка. Всего понемногу. Основная работа - изменение конфигурации аппаратуры с помощью готовых программ.
Попробую твой метод. Он логичен. но у меня есть небольшое сомнение что у объекта нет метода onclick.

Методы создаются в xsd формате кажется, я прав?

dmitriymar 23.01.2011 19:11

Цитата:

Сообщение от windrunner2011
Ну не как чистый программист с углубленным знанием одного языка.

вобщем без знания любого из языков?

Gvozd 23.01.2011 19:33

Цитата:

Сообщение от windrunner2011
Методы создаются в xsd формате кажется, я прав?

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

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

так что изучайте JS, и решайте свою задачу планомерно.

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

windrunner2011 23.01.2011 19:54

Цитата:

Сообщение от Gvozd (Сообщение 89328)
что за бред?
это предложение не имеет смысла.
распишите подробнее, как вы пришли к такому выводу, и мы попытаемся указать, на каком шаге вы начинаете неправильно воспринимать суть.

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

так что изучайте JS, и решайте свою задачу планомерно.

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

ДА МНЕ НЕ НАФИГ НУЖНО СКЛАДЫВАТЬ КАКОЕ ТО ВПЕЧАТЛЕНИЕ ПЕРЕД КЕМ ТО.

XSD это из какой то книги я вспомнил. Там можно придерживаясь определенной семантики (Я НАПИСАЛ СЕМАНТИКИ НЕ ДЛЯ ТОГО ЧТОБ ОБО МНЕ ВПЕЧАТЛЕНИЕ СЛОЖИЛОСЬ ПРОФЕССИОНАЛА. Пусть будет грамматики.) создать описание для элементов и их свойства кажется. будет ли тип элемента integer и тому подобное. События можно ли там описывать я не помню точно. Вот и спрашиваю бл@. Извините нервы кипят от комментариев ваших.

dmitriymar 23.01.2011 19:58

я конечно извиняюсь-но каким методом кнопка скрывается?

Gvozd 23.01.2011 20:15

Цитата:

Сообщение от windrunner2011
Извините нервы кипят от комментариев ваших.

ну, так засядьте со справочником и гуглом.
мы все через это прошли.
подавляющее большинство профессионалов в любой области программирования при своем обучении(самообучении) практически не задавали вопросов.
знаете почему?
потому что на большую часть вопросов уже есть ответы в интернете.

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

windrunner2011 23.01.2011 20:19

Цитата:

Сообщение от dmitriymar (Сообщение 89322)
вобщем без знания любого из языков?

Давайте пример представим. Можно ли человека который не может написать программу-драйвер, но может написать программку для редактирования текста назвать человеком совсем не знающим язык программирования?

Есть несколько градаций даже знания обычного языка. Basic, Intermediate, Advanced, Native и так далее. Если у человека уровень не native значит он вообще не сможет понять смысл простых предложений?

windrunner2011 23.01.2011 20:22

Цитата:

Сообщение от Gvozd (Сообщение 89342)
ну, так засядьте со справочником и гуглом.
мы все через это прошли.
подавляющее большинство профессионалов в любой области программирования при своем обучении(самообучении) практически не задавали вопросов.
знаете почему?
потому что на большую часть вопросов уже есть ответы в интернете.

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

Хорошо сознаюсь я искал легкий путь.

windrunner2011 23.01.2011 20:32

Цитата:

Сообщение от dmitriymar (Сообщение 89339)
я конечно извиняюсь-но каким методом кнопка скрывается?

visibility.hidden либо display.none... Из за этого вряд ли. Пробовал с видимой кнопкой.

dmitriymar 23.01.2011 20:49

а код кнопки мож стоит положить и спросить что не так?
Цитата:

Сообщение от windrunner2011
visibility.hidden либо display.none...

одно делает невидимой другое исключает из дерева dom-разница есть

Kolyaj 23.01.2011 21:26

Цитата:

Сообщение от dmitriymar
одно делает невидимой другое исключает из дерева dom-разница есть

Не исключает из дерева, а просто перестаёт занимать место на странице.

dmitriymar 23.01.2011 21:48

Цитата:

Сообщение от Kolyaj
Не исключает из дерева, а просто перестаёт занимать место на странице.

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

monolithed 23.01.2011 22:21

dmitriymar, логично наверное представить что к скрытому элементу можно обратиться и даже получить его индекс :)
Цитата:

Сообщение от windrunner2011
Я таймер, анимацию все сделал. Осталось нажать на настоящую кнопку.

какое должно произойти событие и что это за кнопка на которую нужно нажать?

dmitriymar 24.01.2011 00:37

Цитата:

Сообщение от monolithed
dmitriymar, логично наверное представить что к скрытому элементу можно обратиться и даже получить его индекс

если он просто скрыт-то логично. но если он,как описывается в некоторых источниках,после скрытия/открытия не содержится в дереве дум и его нужно туда принудительно добавлять то проблематично

windrunner2011 24.01.2011 07:28

ЛЮДИ! У объекта нет события OnClick!!!

<object classid="clsid:CAEAAAA-93D3-11D0-AAAA-00C095ACCAAA" id="F1">
<param name="lalalal" value="lalal">
...
<param name="lalalal" value="lalal">
</object>

dmitriymar 24.01.2011 09:57

Цитата:

Сообщение от windrunner2011
ЛЮДИ! У объекта нет события OnClick!!!

<object classid="clsid:CAEAAAA-93D3-11D0-AAAA-00C095ACCAAA" id="F1">
<param name="lalalal" value="lalal">
...

<param name="lalalal" value="lalal">
</object>

а как это всё к кнопке относится?

windrunner2011 24.01.2011 10:48

Я не знаю. Она так описывается. У нее куча параметров. Откуда брать картинки и так далее.
Вот кусок
<param name="Icon" value="[#VAR_F4_IMAGE_S;;#]">
<param name="ImageUp" value="../images/button_up.png">
<param name="ImageDown" value="../images/button_down.png">
<param name="ImagePressed" value="../images/button_down.png">
<param name="ImageDisabled" value="../images/button_disabled.png">
<param name="IconDisabled" value="[#VAR_F4_IMAGE_S;;#]">

windrunner2011 24.01.2011 11:04

Вообще там Touch screen

monolithed 24.01.2011 11:04

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

windrunner2011 25.01.2011 07:25

Вот код. Но я думаю вряд ли это вам поможет. Там где х десятичные числа. Object с ID="F4" это одна кнопка из 8. Другие ни чем не отличаються кажется, кроме только ID и
<param name="RTViewState" value="[#VAR_D_VIEWSTATE_S;;#]">


<meta http-equiv="Content-Language" content="ru"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert note</title>
<link rel="Stylesheet" type="text/css" href="stylesheet/basestylesheet.css">

<SCRIPT LANGUAGE="JavaScript" FOR="ATM" EVENT="OnContentsStart()">
document.getElementById('F4').style.display='block ';
</SCRIPT>
</head>
<body class="bodyMain" onload="javascript:run()">

<object classid="clsid:CAE3F5B3-93D3-11D0-A3C0-FFFFFFFFFFFFFF" id="F4">
<param name="_Version" value="xxxxx">
<param name="_ExtentX" value="xxxx">
<param name="_ExtentY" value="xxxx">
<param name="_StockProps" value="x">
<param name="Scheme" value>
<param name="Icon" value="[#VAR_F4_IMAGE_S;;#]">
<param name="ImageUp" value="../images/button_up.png">
<param name="ImageDown" value="../images/button_down.png">
<param name="ImagePressed" value="../images/button_down.png">
<param name="ImageDisabled" value="../images/button_disabled.png">
<param name="IconDisabled" value="[#VAR_F4_IMAGE_S;;#]">
<param name="ImageUpDefault" value="x">
<param name="ImagePressedDefault" value="x">
<param name="ImageDownDefault" value="x">
<param name="ImageDisabledDefault" value="x">
<param name="IconAlignX" value="xx">
<param name="IconAlignY" value="x">
<param name="IconXCentered" value="x">
<param name="IconYCentered" value="x">
<param name="FieldID" value="x">
<param name="Href" value>
<param name="ViewState" value="x">
<param name="RTViewState" value="[#VAR_D_VIEWSTATE_S;;#]">
<param name="Softkey" value="F4">
<param name="Selection" value="x">
<param name="HTMLStepSwitch" value="x">
<param name="Function" value="FDK D">
<param name="FunctionValue" value="D">
<param name="Identification" value="x">
<param name="RadioButtonName" value="DM">
<param name="ChipCard" value="x">
<param name="HoldPressedState" value="x">
<param name="PressOffsetDefault" value="x">
<param name="PressOffset" value="x">
<param name="AudioResponse" value="C:\Protopas\Web\Sounds\Keypress.wav">
<param name="HtmlWindow" value="x">
<param name="HTMLxPos" value="xx">
<param name="HTMLyPos" value="xx">
<param name="HTMLWidth" value="xxx">
<param name="HTMLHeight" value="xxx">
<param name="Text" value="[#VAR_F4_TEXT_S;;#]">
<param name="PosXYDefault" value="x">
<param name="TextAlignX" value="xx">
<param name="TextAlignY" value="x">
<param name="XCentered" value="x">
<param name="TextAlignXTyp" value="x">
<param name="YCentered" value="x">
<param name="FontDefault" value="x">
<param name="Font" value="Tahoma">
<param name="FontCodePage" value="xxx">
<param name="TextSize" value="xx">
<param name="TextBold" value="x">
<param name="TextItalic" value="x">
<param name="TextUnderline" value="x">
<param name="TextStrikeout" value="x">
<param name="ActiveColourDefault" value="x">
<param name="InactiveColourDefault" value="x">
<param name="TextColour" value="xxxxxxxx">
<param name="TextColourDisabled" value="xxxxxxx">
<param name="TextLayerCount" value="x">
<param name="TextLayerText" value="[#VAR_F4_TEXT_S;;#]">
<param name="TextLayerPosXYDefault" value="x">
<param name="TextLayerTextAlignX" value="xx">
<param name="TextLayerTextAlignY" value>
<param name="TextLayerXCentered" value>
<param name="TextLayerTextAlignXTyp" value="x">
<param name="TextLayerYCentered" value="x">
<param name="TextLayerFontDefault" value="x">
<param name="TextLayerFont" value="Tahoma">
<param name="TextLayerFontCodePage" value="xxx">
<param name="TextLayerTextSize" value="xx">
<param name="TextLayerTextBold" value="x">
<param name="TextLayerTextItalic" value="x">
<param name="TextLayerTextUnderline" value="x">
<param name="TextLayerTextStrikeout" value="x">
<param name="TextLayerActiveColourDefault" value="x">
<param name="TextLayerInactiveColourDefault" value="x">
<param name="TextLayerTextColour" value="xxxxxxxx">
<param name="TextLayerTextColourDisabled" value="xxxxxxxxx">
<param name="AdditionalFeatures" value>
</object>

<object classid="clsid:932EC911-244D-11D1-A3F0-FFFFFFFFFFFF" id="ATM">
<param name="Name" value>
<param name="Page_Headline" value=" ">
<param name="PageInstruction" value="[#VAR_MENU_TITLE;;Please make your choice#]">
<param name="PageTimeout" value="[#BS4VAR_TIMEOUT;;InputTimeout#]">
<param name="PageBeep" value="x">
<param name="FunctionKeyID01" value="CANCEL">
<param name="FunctionKeyID02" value>
<param name="FunctionKeyID03" value>
<param name="FunctionKeyID04" value>
<param name="FunctionKeyID05" value>
<param name="FunctionKeyID06" value>
<param name="FunctionKeyID07" value>
<param name="FunctionKeyID08" value>
<param name="FunctionKeyID09" value>
<param name="FunctionKeyID10" value>
<param name="FunctionKeyID11" value>
<param name="FunctionKeyID12" value>
<param name="FunctionKeyID13" value>
<param name="FunctionKeyID14" value>
<param name="FunctionKeyID15" value>
<param name="FunctionKeyID16" value>
<param name="FunctionKeyID17" value>
<param name="FunctionKeyID18" value>
<param name="FunctionKeyID19" value>
<param name="FunctionKeyID20" value>
<param name="FunctionKeyViewState01" value="x">
<param name="FunctionKeyViewState02" value="x">
<param name="FunctionKeyViewState03" value="x">
<param name="FunctionKeyViewState04" value="x">
<param name="FunctionKeyViewState05" value="x">
<param name="FunctionKeyViewState06" value="x">
<param name="FunctionKeyViewState07" value="x">
<param name="FunctionKeyViewState08" value="x">
<param name="FunctionKeyViewState09" value="x">
<param name="FunctionKeyViewState10" value="x">
<param name="FunctionKeyViewState11" value="x">
<param name="FunctionKeyViewState12" value="x">
<param name="FunctionKeyViewState13" value="x">
<param name="FunctionKeyViewState14" value="x">
<param name="FunctionKeyViewState15" value="x">
<param name="FunctionKeyViewState16" value="x">
<param name="FunctionKeyViewState17" value="x">
<param name="FunctionKeyViewState18" value="x">
<param name="FunctionKeyViewState19" value="x">
<param name="FunctionKeyViewState20" value="x">
<param name="SubmitControlName" value>
<param name="WithoutSubmitButton" value="x">
<param name="NewWindowTop" value="xx">
<param name="NewWindowLeft" value="xx">
<param name="NewWindowWidth" value="xxx">
<param name="NewWindowHeight" value="xxx">
<param name="HelpHref" value>
<param name="PinEntry" value="x">
<param name="EPPConfigActiveFDK" value="x">
<param name="EPPConfigActiveFK" value="x">
<param name="EPPConfigTerminateFDK" value="x">
<param name="EPPConfigTerminateFK" value="x">
<param name="EPPConfigValue_FK_Decpoint" value>
<param name="EPPConfigValue_FK_res1" value>
<param name="EPPConfigValue_FK_sub" value="*">
<param name="ADACommand" value>
</object>
</body>
</html>

monolithed 25.01.2011 09:23

ну как-то так вызвать:
ExternalInterface.addCallback("callFunction", getFunction);

function getFunction(i:Number):void {
     return i;
    /* тело функции*/
}

getSWF('clip').callFunction(2);


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

Однако для полного понимания, что нужно сделать
прочтите:
http://javascript.ru/unsorted/bridge-to-flash
http://help.adobe.com/ru_RU/AS3LCR/F...Callback%28%29

windrunner2011 25.01.2011 10:07

То есть это объект флэш?

windrunner2011 25.01.2011 10:37

Странно SWF файл "clip" откуда я возьму.

Какую функцию мне прописать внутри ковычек?

monolithed 25.01.2011 14:15

Цитата:

Сообщение от windrunner2011
То есть это объект флэш?

ну вам же нужно выполнить флеш-событие вызвать?
Цитата:

Сообщение от windrunner2011
Странно SWF файл "clip" откуда я возьму.

clip - это swf файл, в который и нужно включить код, но я не вижу чтобы вы его подключали.
в callFunction нужно просто передавать аргументы, которые у вас в параметрах указаны.

но на самом деле, не понятно, что должен выполнять ваш код, т.к. нет ни JS ни SWF файлов, которые бы вызывали что-то...

windrunner2011 25.01.2011 14:29

Блииин. Какие параметры!!!!

Единственное что мне нужно это нажать на кнопку!!!

Все остальное я сделал в javascripte. В одной из функций у меня стоит
document.getelementbyID('F4').Click().

Но она не работает, так как нет события у объекта "F1" - Click. Как описывается этот объект я показал.

Gvozd 25.01.2011 14:33

Цитата:

Сообщение от monolithed
на самом деле, не понятно, что должен выполнять ваш код, т.к. нет ни JS ни SWF файлов, которые бы вызывали что-то...

вот же этот объект, который выполняется
Цитата:

Сообщение от windrunner2011
classid="clsid:CAE3F5B3-93D3-11D0-A3C0-FFFFFFFFFFFFFF"

он зарегестрирован в реестре, вместе с другими объектами.

и далеко не факт, что это flash
это вполне может быть и ActiveX объект

Gvozd 25.01.2011 14:35

Цитата:

Сообщение от windrunner2011
Единственное что мне нужно это нажать на кнопку!!!

что при этом должно произойти?
эта кнопка не имеет никакого отношения к JS, и не может быть нажата обычным способом.
JS не может вот так просто взаимодействовать с flash, или иными объектами, без специально сделанного для этого интерфейса.

dmitriymar 25.01.2011 18:13

Суть насколько я понимаю. есть некая контора у какой есть свои терминалы. Устраивается новый сотрудник-какой вносит рац предложение-руководство соглашается и даёт карты в руки новичку. Какой вместо того чтобы обратиться в отделение занимающееся програмированием терминалов(могу поспорить что они на обслуживании и договор на изменение в софте есть на несколько лет вперёд)-решает сам этим заняться(не имея ни знаний не опыта)-чтобы пустить пыль в глаза начальству.Так?

Вот теперь мне жаль начальство по настоящему,дало добро а не подумало что "деятель" мож всю систему накрыть...

dmitriymar 25.01.2011 18:16

а вообще както мутно звучит -скрыть ,открыть, доп кнопка...Очередная афера на терминалах со стороны "слесаря" их обслуживающего?

windrunner2011 26.01.2011 04:54

Мы не разработчики. Наша задачи ставить апдейты, обслуживать, следить чтоб все правильно работало.
Есть оф разработчики, которые находятся в другом городе.
Но чтоб каждый раз по мелочам не беспокоить разработчиков мы сами делаем добавления не выходя из одного окна. Какую то справочную информация, заставки и тд.
Появилась проблема что киоск не сразу считывает данные и сразу нажимать на кнопку нельзя. я решил если поставить таймер и потом нажать то может получится. вот с реализацией возникла вот такая проблема потом.


Часовой пояс GMT +3, время: 06:37.