如何在单独的框架中打开ajax请求?

时间:2009-07-02 04:21:52

标签: javascript ajax

好的,我有这段代码:

 <script language="javascript" type="text/javascript">
<!--

function requestPage(page) {

    var request = false;

    try {
        request = new XMLHttpRequest();
    } catch (e) {
        try{
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
            alert("Unable to complete your request.");
            return false;
            }
        }
    }

    request.onreadystatechange = function() {
        if(request.readyState == 4) {
            if(request.status == 200) {    
                document.getElementById('content').innerHTML = request.responseText;
            }
        }
    }

    request.open("GET", "include.php?page=" + page, true);
    request.send(null);
}

//-->
</script>

然后显然是这样发生的:

<a onclick="javascript:requestPage('red_the_clown')"><li>Red</li></a>
<div id="content"><?php include('index2.php'); ?></div>

我一直在试着弄清楚如何定位一个单独的框架而不是当前框架。即:#content div将在_main中,但它是从一个帧调用的。

有人有什么想法吗?

提前致谢!

赖安

2 个答案:

答案 0 :(得分:1)

您想从框架内访问文档吗?

top指的是最顶层的框架。父母指的是一级。

您上面的Javascript可能只需要一次更改:

top.document.getElementById('content').innerHTML = request.responseText;

但是,您需要两个帧来自同一个域,否则您将受到浏览器安全性的限制。

答案 1 :(得分:0)

所以你有一个id为“_main”的iframe?

怎么样

window.frames["_main"].document.getElementById("content").innerHTML = request.responseText;