在javascript中从框架中查找父窗体的按钮

时间:2009-10-09 07:17:07

标签: javascript

我无法通过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_;        }

2 个答案:

答案 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