有没有办法改变网址是iframe?

时间:2011-10-02 10:07:19

标签: php javascript iframe

我想在另一个页面的iframe中显示我的网站页面。 我的意思是你在导航main.php时可以看到helper.html。 但我想更改helper.html中有关main.php中设置的某些条件的链接。

常规解决方案是获取helper.html的内容并在main.php中处理它,然后回显它。 但它是服务器端,我希望这个过程是客户端。

使用JavaScript可以吗?

4 个答案:

答案 0 :(得分:2)

如果您的文件位于同一个域,则可以使用top.frames属性,ro引用命名框架的window对象:

假设顶级HTML具有这样的结构:

<iframe name="main" /><iframe name="helper" />

内部主要:

top.frames["helper"].document.getElementById("linkID").href = "http://newlink.com";

如果您使用的是AJAX,则可以在回调处理程序中添加以前显示的代码。如果main.php在更改时重新加载<script>代码中的代码。

答案 1 :(得分:1)

试试这个......

var myIframe = document.getElementById('SomeIFrame'); 
myIframe.src = 'www.joobworld.com'; 

答案 2 :(得分:1)

是的,如果两个帧都在同一个域中,则可能。 请参阅示例函数:在帮助框架中,链接的id被假定为“链接”

function ChangeLink()
{
    var Helpframe = document.getElementById("Helpframe");
    var innerDoc = Helpframe.contentDocument || Helpframe.contentWindow.document;
    var link = innerDoc.getElementById("link");
    link.href="http://www.google.com";
}

此解决方案的灵感来自Javascript - Get element from within an iFrame

答案 3 :(得分:1)

如果这些文件位于不同的域中,但您可以完全控制它们,请使用以下解决方案:

  • 在主页面中调用带有GET参数的iframe。例如:

    <iframe src="foo.html?parameter=value" width="400" height="500"></iframe>
    
  • 在iframe中使用Javascript解析GET参数并显示适当的内容:

    // get the current URL
    var url = window.location.toString();
    //get the parameters
    url.match(/\?(.+)$/);
    var params = RegExp.$1;
    // split up the query string and store in an
    // associative array
    var params = params.split("&");
    var queryStringList = {};
    
    for(var i=0;i<params.length;i++)
    {
        var tmp = params[i].split("=");
        queryStringList[tmp[0]] = unescape(tmp[1]);
    }
    
    // print all querystring in key value pairs
    for(var i in queryStringList)
        document.write(i+" = "+queryStringList[i]+"<br/>");
    

    来源: http://www.go4expert.com/forums/showthread.php?t=2163