有没有办法改变url是iframe


is there any way to change urls is iframe?

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

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

是可能的JavaScript?

如果您的文件位于同一域,您可以使用top.frames属性,而不是引用命名帧的window对象:

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

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

内部主要:

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

如果使用AJAX,可以在回调处理程序中添加前面显示的代码。如果main.php在更改时重新加载,请查看<script>标签内的代码。

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

  • 在主页面调用带有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

试试这个…

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

如果两个帧都在同一域中,这是可能的。参见示例函数:在帮助框架中,假定link的id为"link"

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 -从iFrame中获取元素