检查您的代码:
在
<form id="url" action='changesrc('main', target)' method="post"><div id=target><input type="text" name="target" id="target" size="65"></div></form>
你有action='changesrc('main', target)'
。应该是action="changesrc('main', target)"
,因为属性应该是双引号,如果你想要它们单引号,你应该转义其他单引号。
但target
属性是您要将表单发送到的文件。您想在提交changesrc
表单时执行,所以它是onsubmit="changesrc('main',target)"
.
但是我们有onsubmit="changesrc('main', target)"
. target
但是,您需要输入的值而不是未定义的变量id="target"
。那么,就是onsubmit="changesrc('main', document.getElementById('target').value)"
。但是在调用那个函数之后,我猜你不想将表单发送到服务器,所以我们需要onsubmit="changesrc('main',document.getElementById('target').value);return false;"
但问题是你有两个元素id="target"
。因此,将其从<div>
.
那么,你有
function changesrc(main, url) {
document.getElementById('main').setAttribute('src', url);
}
好吧,它有效,但您没有使用参数main
。我猜你想要
function changesrc(main, url) {
document.getElementById(main).setAttribute('src', url);
}
最终代码是:
HTML:
<form id="url" onsubmit="changesrc('main',document.getElementById('target').value);return false;" method="post">
<div>
<input type="text" name="target" id="target" size="65">
</div>
</form>
<div id="frame">
<iframe id="main" name="main" type="text/html" src="" frameborder="0" allowtransparency="true"></iframe>
</div>
JavaScript:
function changesrc(main, url) {
document.getElementById(main).setAttribute('src', url);
}
你可以在这里看到它:http: //jsfiddle.net/UsGJb/