我正在做一个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>
谢谢大家:)
答案 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");