Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Вызвать функцию


Автор: Лена 11.12.2008, 21:08
На html странице есть iframe. В этот iframe грузиться этот google скрипт: http://www.lenailicheva.narod.ru/gp.html
Также на html странице есть кнопка. Существует ли возможность при нажатии кнопки вызвать одну из функций, которая находиться в google скрипте в iframe? 

Автор: NNaarreekk 11.12.2008, 22:51
Код

<input type='button' onclick='FrameId.functionName()' />
<iframe id="FrameId" src='bb.htm'></iframe>

Автор: Лена 12.12.2008, 11:57
Спасибо!
Подскажите как будет выглядеть вызов функции с передачей параметров?
Объясню подробнее, я пытаюсь написать web интерфейс к базе данных - отображение меток на карте google. Для написания этого интерфейса я использую С++ Builder 2007 и эти компонеты: http://www.atozed.com/IntraWeb/Education/GettingStarted.EN.aspx
Мое приложение загружает в компонеты данные из базы. Я вижу эти данные, например в одной метке я вижу координату Х, в другой метке координату Y, в третей еще доп.текст. Теперь в кнопке я хочу вызвать функцию чтобы поставить маркер на карте.
Как правильно будет выглядеть вызов?
onclick='FrameId.createMapMarker(координата Х, координата Y, доп. текст)'

Как оформить (координат Х, координата Y, доп. текст) т.е. как обратиться к меткам и взять из них значения?

Автор: Лена 12.12.2008, 14:11
Цитата(NNaarreekk @  11.12.2008,  22:51 Найти цитируемый пост)
<iframe id="FrameId"


Все перепробовала, не хочет работать. smile 

И этот вариант не работает:
Код

<html>
<head>
    <title>Frames</title>
</head>
<body>
<iframe src="http://www.lenailicheva.narod.ru/js2.html" id="FrameId" style="position:absolute; left:200px;top:0px;width:765px;height:670px"></iframe>
<br>
<button onClick="window.frames[0].addControl(2);">Call frame function</button>
</body>
</html>



Автор: NNaarreekk 12.12.2008, 20:33
Как я понял неразрешается вызывать функции на другом домене.

Есть код функции?
Можно переделать чтоб из вне работал но тоже негарантирую что сработает.

Цитата(Лена @  12.12.2008,  13:57 Найти цитируемый пост)
Как правильно будет выглядеть вызов?
onclick='FrameId.createMapMarker(координата Х, координата Y, доп. текст)'

Так и будет выглядеть:
Код

onclick="FrameId.createMapMarker(250,300,'Additional Information')"

В чем проблема?

Автор: Лена 15.12.2008, 13:23
Цитата(NNaarreekk @  12.12.2008,  20:33 Найти цитируемый пост)
Как я понял неразрешается вызывать функции на другом домене.


Скопировала http://www.lenailicheva.narod.ru/js2.html на свой компьютер.

Цитата(NNaarreekk @  12.12.2008,  20:33 Найти цитируемый пост)
Есть код функции?


Он же в файле http://www.lenailicheva.narod.ru/js2.html 
Зайдите по ссылке и посмотрите в виде html.

Я  js2.html сохранила на свой компьютер и не могу вызвать функцию:
Код

<html>
<head>
    <title>Frames</title>
</head>
<body>
<iframe src="js2.html" id="FrameId" style="position:absolute; left:200px;top:0px;width:765px;height:670px"></iframe>
<br>
<button onClick="window.iframes[0].addControl(2);">Call frame function</button>
</body>
</html>




Не работает...

Автор: Лена 15.12.2008, 14:35
Вот так работает:
Код

html>
<head>
   <title>Frames</title>
<script type="text/javascript">

function Funk(num)
{
var SmthVariable=document.getElementById("FrameId").contentWindow.addControl(num);
}

</script>
</head>
<body>
<iframe src="js2.html" id="FrameId" style="position:absolute; left:200px;top:0px;width:765px;height:670px"></iframe>
<br>
<button onClick="Funk(2);">Call frame function</button>
</body>
</html>




Подскажите как обойтись без функции Funk? Как весь код вставить сюда:
<button onClick=" 

Так не работает:
<button onClick="document.getElementById("FrameId").contentWindow.addControl(2);">Call frame function</button>

Автор: bars80080 15.12.2008, 18:28
вот зачем кнопка код? если бы вставила, сразу бы увидела, как разрывается команда из-за двойных кавычек:

Код

<button onClick="document.getElementById("FrameId").contentWindow.addControl(2);">Call frame function</button>


попробуй так

Код

<button onClick="document.getElementById('FrameId').contentWindow.addControl(2);">Call frame function</button>


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

Автор: Лена 16.12.2008, 13:30
Цитата(bars80080 @  15.12.2008,  18:28 Найти цитируемый пост)
но всё равно не понимаю зачем. зачем запихивать всякие непотребности в тэги, когда можно аккуратно вынести в отдельную функцию? 



Спасибо работает!
Я не пишу классическую html страницу. Я создаю web сервис на основе технологии IntraWEB, которая идет в поставке RAD Studio. Я вставляю код в специлизированные компоненты IntraWeb. Кладу на форме компонет кнопка и в событии щелчка ее теперь пишу: "document.getElementById('FrameId').contentWindow.addControl(2);"
Далее идет компиляция проекта и на выходе получаю то что нужно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)