iframe中的目标按钮?

时间:2012-03-03 17:57:28

标签: jquery

我正在做一个Android网络目录,因此我不得不使用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>

谢谢大家:)

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

您可以使用以下技术点击iframe内的按钮。

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