如何从其他页面更改iframe src

时间:2011-08-29 06:42:03

标签: javascript jquery

我有一个php页面,其中包含另一个名为'tree.php'的php页面,还包含一个iframe.Iframe调用页面'contentpage.php'。然后我想用javascript或jquery来改变iframe的src tree.php.I alredy试过这些

document.getElementById['contentframe'].src = "contentpage.php";
$("#contentframe").attr("src", "contentpage.php");

1 个答案:

答案 0 :(得分:2)

假设所有帧都在同一个域中,这可以很容易地完成。

<html>
<head>
    <title>Test</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
         var change_iframe_src = function(new_src) {
             $("#myframe-content").attr('src', new_src);
         }
    </script>
</head>

<body>
    <!-- frame which includes your tree.php -->
    <iframe src="iframe.html" width="200" height="200" border="1"></iframe>
    <!-- frame for which we will change src attribute -->
    <iframe id="myframe-content" src="" width="400" height="200" border="1"></iframe>        
</body>

现在在tree.php中附加一个 something 的点击处理程序,它应该改变iframe属性的src(可能是某个链接)。例如:

<html>
<head>
    <title>Tree</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
            $("#nav a").click(function(e) {
                e.preventDefault();
                // call function in a parent frame
                parent.window.change_iframe_src(this.rel);
            })
        })
    </script>
</head>
<body>
    <div id="nav">
        <a href="#" rel="iframe2.html">Change iframe src to iframe2.html</a>
        <a href="#" rel="iframe3.html">Change iframe src to iframe3.html</a>
    </div>
</body>

现在有了这种设置,tree.php中的链接将调用父窗口中定义的函数(嵌入tree.php本身的窗口)。该函数(本例中为change_iframe_src)接受一个参数,该参数是一个新的url,框架 myframe-content 的src属性应更改为。

同样,只要基础文档和带有tree.php的iframe是同一域中的文档,这就可以工作。