获取iframe网址并更新输入文字

时间:2011-07-28 10:03:40

标签: javascript iframe input

我在页面中有一个iframe,我想获取该iframe的当前网址并使用该网址更新输入文字。

我发现我可以使用

获取iframe的网址
document.getElementById("iframe_id").contentWindow.location.href

<iframe id="iframe" name="iframe" src="" width="100%" height="100%" style="border-width: 0px; border-color:#ffffff; border-style: solid;" scrolling="no" border="0" class="auto-style1" frameborder="0" marginheight="0" marginwidth="0"> </iframe>

<script type="text/javascript">
var link = document.getElementById("iframe").contentWindow.location.href ;
document.Show.link.value = link;

</script>
<strong>link for the iframe :</strong>
    <input name="link" type="text" size="100" />

<a onclick="document.all.iframe.src=''" href="url" target="iframe">LINK</a>

没有用。

我不知道如何使用它并在每次ifram的url更改时使用该url更新输入文本

如果有人点击其中的链接,

iframe网址可能会发生变化

最好的问候,

2 个答案:

答案 0 :(得分:0)

您的iframe代码错误。它来了:

<iframe id="iframe" src="url_of_your_iframe" ... ></iframe>
<input type="text" id="input" />
<script type="text/javascript">
(function() {
  document.getElementById('input').value = document.getElementById('iframe').src;
})();
</script>

就是这样。

编辑:等等,您的iframe的网址何时更改?如何?

答案 1 :(得分:0)

注意:如果由于Same Origin Policy,IFRAME中的页面属于与父页面不同的域,则无法访问IFRAME的元素(包括contentWindow)来自 - Yuriy Galanter

然而,这是一个简单而基本的浏览器,它使用keyup进行搜索;也许它会派上用场。

如果您决定添加按钮以在历史记录中前进和后退,则可以将history.back();history.forward();用于此特定目的。

<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.min.js'></script>

<style type="text/css">
span.style {
    cursor: pointer;
    font-family: Sans-Serif;
    font-size: 1.5em;
    font-weight: bold;
    padding: 0 .5em;
    color: #666;
}

span.style:hover {
    color: #999;
}

span.style:active {
    color: #000;
}

input#goto {
    width: 80%;
    font-family: Sans-Serif;
    font-size: 1.25em;
}

iframe#browsensearch {
    width: 100%;
    height: 90%;
}
</style>

<script type='text/javascript'>
$(document).ready(function() {
    $("#goto").click(function() {
        $(this).select();
    });

    $("#bing").click(function() {
        var sitesgohere = document.getElementById("browsensearch");
        sitesgohere.src = "http://www.bing.com/";
        $("#goto").val("bing.com");
    });

    $("#goto").keyup(function(e) {
        var val = $(this).val(), 
        sitesgohere = document.getElementById("browsensearch");

        sitesgohere.src = "http://" + val;
    });
});
</script>

<form name="sites" align="center">
    <span id="bing" class="style">Bing</span>
    <input id="goto" type="text" placeholder="http:// added by default" />
</form>

<iframe id="browsensearch" src="http://theextinctionprotocol.wordpress.com/2013/10/01/large-fireball-seen-acoss-six-midwestern-states/" width="100%" height="100%" allowtransparency="true" frameBorder="0">
    Your browser does not support IFRAME's
</iframe>