2012-03-03 2 views
0

Я занимаюсь веб-каталогом Android, и по этой причине мне пришлось использовать iframes. Я хотел спросить, однако, можно ли нажать кнопку в iframe и заставить код работать на главной странице?Целевые кнопки в iframe?

Это код, у меня есть:

 function initFastButtons() { 
     new FastButton(document.getElementById("CloseButton"), runclose); 
     new FastButton(document.getElementById("OpenButton"), runopen); 
    }; 
    function runclose() { 
     $('.full-preview-viewer').hide(); 
    }; 
    function runopen() { 
     $('.full-preview-viewer').show(); 
    }; 

И это то, что кнопка в IFRAME выглядит следующим образом:

<input id="OpenButton" type="image" src="products/special/product1.png" name="image" width="336" height="593"></input> 

Спасибо всем :)

ответ

1

Вы можете переместить определения для «runclose()» и «runopen()» в родительское окно (документ, создающий iframe). Затем в вашем iframe вы можете изменить настройку initFastButtons(), чтобы ссылаться на эти функции как «parent.runclose» и «parent.runopen». Обратите внимание, что обычно такие вещи ограничены, если страницы не запрашиваются из того же домена.

Рассмотрим эти две страницы, "inner.html" и "outer.html":

outer.html:

<html> 
<head> 
<script type="text/javascript"> 
window.do_action = function() { 
    alert('the button was clicked!'); 
} 
</script> 
</head> 
<body> 
    <iframe src="inner.html"></iframe> 
</body> 
</html> 

inner.html:

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('button').click(parent.do_action); 
}); 
</script> 
</head> 
<body> 
    <button>Click Me!</button> 
</body> 
</html> 
+0

Эй, Джейсон, я немного смущен. Я создал отдельный код jquery в [iframe] (http://www.nightlifebratislava.com/demos/mobile7/special.html), который выполняет функцию, которая выполняет 'parent.runopen();'. Но это не работает (это тоже не работает на ПК, но это нормально). [Вот главная страница] (http://www.nightlifebratislava.com/demos/mobile7) – pufAmuf

+0

Теперь он работает, спасибо! – pufAmuf

0

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

var $currentIFrame = $('#IFrameId'); 
$currentIFrame.contents().find("#OpenButton").trigger("click"); 
+0

Привет Starx, я думаю, что этот код, однако, исключит мою функцию FastButton, которая служит для отключения ожидания 300 мс на устройствах Android при нажатии кнопок. – pufAmuf

Смежные вопросы