创建一个地址栏来指导iframe?

时间:2013-08-11 04:37:43

标签: iframe

好吧,我正试图在互联网上来回晃动,方式与此类似:http://jsfiddle.net/Muimi/gm7gv/。不幸的是,我的代码不起作用。发生的事情是该页面根本没有重定向。我注意到它给了我像'页面不存在'这样的错误,对于google.com(存在,只是众所周知)。那么,有什么想法吗?

<!DOCTYPE html>
<html>
<head>
<style>
#showUrl {
border:2px solid #0A9;
height:90%;
width:95%;
}
#url {
width:30em;
}
</style>
<script type="text/javascript">
  function loadUrl() {
    var url = document.getElementById( 'url' ).value;
    var showUrl = document.getElementById( 'showUrl' );
    showUrl.src = url;
}
</script>
</head>
<body>
<form>
    Enter URL to load: <input type="text" id="url" />
    <input type="button" value="Load URL" onclick="loadUrl()" />
</form>
<iframe id="showUrl"></iframe>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

你是否包括'http://'?如果没有,iframe正在尝试加载相对路径而不是绝对路径。

function loadUrl() {
    var url = document.getElementById( 'url' ).value,
        showUrl = document.getElementById( 'showUrl' );
    showUrl.src = /$https?:\/\//.test(url) ? url : 'http://'+url;
}

答案 1 :(得分:0)

您的代码确实有效。我在JsBin上尝试了它,它确实可以使用我的网站的URL,但没有使用Google的

http://jsbin.com/akugeg/1/edit

有三个原因:

  1. 您需要添加一个协议,因此它可以作为绝对URL而不是a 相对的。

  2. 大多数代码调试服务都不允许加载iframe,因为它本身使用iframe来显示内容 - 出于安全原因。

  3. 有些网站不喜欢加载到iframe中,所以他们只是将他们的服务器配置为不在自己的域以外的iframe中加载其他内容。

  4. 但我可以向您保证代码可以正常运行,如果您在本地主机上试用它,它可能会有效。