我有一个包含两个文本框和一个按钮的网页。我无法通过添加任何内容或更改其中的任何内容来控制此页面。
我希望(以某种方式)在页面加载时在第一个文本框中写入一些文本,而不是按下按钮。
我想将页面放在一个框架中,然后从容器页面控制它
我知道我必须使用jquery,但我需要一个解释该问题的示例或告诉我如何做我想要的事情
例如,如果我有“a.htm”文件:
“a.htm”的内容:
<iframe id="frame1" src="f.htm" />
和“f.htm”的内容是:
<input type="textbox" id="tbx1" />
<input type="textbox" id="tbx2" />
<input type="submit" id="okbtn" value="ok"/>
例如,当页面“a.htm”加载时,我希望页面“f.htm”中的文本框(例如“tbx1”)(包含在框架“frame1”中)由某些人填充文本。
提前致谢
答案 0 :(得分:3)
在开始这个答案之前,值得解释一下,不能单独使用JavaScript来操作从单独域提供内容的框架* 。换句话说,如果你的网页a.htm在你的域上(例如http://yourdomain.com/a.htm),而f.htm在另一个域上(例如http://someothersite.com/f.htm),那么JS将不< / strong>能够访问iframe内的任何内容。
* 有一些技巧可以做到这一点,但根据经验,它们会带来更多麻烦而不是好事。
但是,如果它们都在同一个域中,那么您应该没有任何问题。在a.htm
中,要访问iframe,您可以使用以下jQuery代码段:
$(function() {
var iframe = $('#frame1').load(function() {
$(this).contents().find('#tbx1').val('Text in a box!');
});
});
因此,您的a.htm
可能如下:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
$(function() {
var iframe = $('#frame1').load(function() {
$(this).contents().find('#tbx1').val('Text in a box!');
});
});
</script>
</head>
<body>
<iframe id="frame1" src="f.htm" />
</body>
</html>