我无法通过javascript从框架中获取我的主窗体的按钮。我通过查询字符串获取按钮的ID然后我执行以下脚本但是无法获取按钮。当我写参数的名称如getElementByID('btnDelete')时,它找到了控件?可能是什么原因,我该如何解决这个问题?
function okay() {
var btn = getQuerystring('btn');
window.parent.document.getElementByID(btn).click();
}
function getQuerystring(key, default_) {
if (default_ == null) {
default_ = "";
}
var search = unescape(location.search);
if (search == "") {
return default_;
}
search = search.substr(1);
var params = search.split("&");
for (var i = 0; i < params.length; i++) {
var pairs = params[i].split("=");
if (pairs[0] == key) {
return pairs[1];
}
}
return default_; }
答案 0 :(得分:1)
我相信您的代码中存在拼写错误。它应该是window.parent.document.getElementById(btn).click();用小写“d”。
答案 1 :(得分:0)
将其另存为test.html
:
<html>
<body>
<form action="http://google.com">
<input type="submit" id="thebutton" value="Click Me!"/>
</form>
<iframe src="test2.html?btn=thebutton"/>
</body>
</html>
将其另存为test2.html
:
<html>
<head>
<script>
function okay() {
var btn = getQuerystring('btn');
window.parent.document.getElementById(btn).click();
}
function getQuerystring(key, default_) {
if (default_ == null) {
default_ = "";
}
var search = unescape(location.search);
if (search == "") {
return default_;
}
search = search.substr(1);
var params = search.split("&");
for (var i = 0; i < params.length; i++) {
var pairs = params[i].split("=");
if (pairs[0] == key) {
return pairs[1];
}
}
return default_;
}
</script>
</head>
<body onLoad="okay()">
</body>
</html>
唯一的问题是你需要在getElementById中使用小写 d 。