Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在将URL从链接打开到iframe_Javascript_Jquery_Iframe - Fatal编程技术网

Javascript 正在将URL从链接打开到iframe

Javascript 正在将URL从链接打开到iframe,javascript,jquery,iframe,Javascript,Jquery,Iframe,我已经创建了iframe,它在开始时没有src。当我点击一个链接时,例如,谷歌搜索的结果,该链接应该尝试在该iframe中打开。不在我当前浏览的选项卡中。 $(文档).ready(函数(){ $('', { id:'第一', 样式:“位置:固定;顶部:0;底部:0;右侧:0;最大宽度:500px;z索引:120;” }).附于(“主体”); $('', { 名称:'frame1', id:'frame1', src:' }) .css({ “高度”:“100%”, “宽度”:“450px” }

我已经创建了iframe,它在开始时没有
src
。当我点击一个链接时,例如,谷歌搜索的结果,该链接应该尝试在该iframe中打开。不在我当前浏览的选项卡中。

$(文档).ready(函数(){
$('', {
id:'第一',
样式:“位置:固定;顶部:0;底部:0;右侧:0;最大宽度:500px;z索引:120;”
}).附于(“主体”);
$('', {
名称:'frame1',
id:'frame1',
src:'
})
.css({
“高度”:“100%”,
“宽度”:“450px”
}).appendTo(“#firster”);
$(“a”)。单击(功能(e){
$(“#frame1”).attr(“src”,window.location.protocol+'/'+window.location.host+$(this.attr(“href”);
返回false;
})
});
我期望的是打开那个url(我关注协议主机和url),它只是不打开。

单击链接前的元素状态:

单击链接后的元素状态:

如何解决这个问题?有办法吗

编辑部分:

这是我在控制台中定期得到的信息:

已阻止跨源请求:同一源策略不允许读取 位于的远程资源 . (原因:缺少CORS标头“访问控制允许原点”)


您可以简单地用html实现它

试试这个

<iframe height="300px" width="100%" src="" name="iframe_a"></iframe>

<p><a href="https://www.stackoverflow.com" target="iframe_a">stackoverflow.com</a></p>
javascript方法:


函数loadIframe(iframeName,url){
if(window.frames[iframeName]){
frames[iframeName].location=url;
返回false;
}
返回true;
}
您的浏览器不支持iFrame。

有点解决了我想要的。对于每个想在这里看到它的人:

$(document).ready(function () { 

    $('<div />', {
        id: 'firster',
        style: 'position: fixed; top: 0; bottom: 0; right: 0; max-width: 500px; z-index: 120;'
    }).appendTo('body');

    $('<iframe />', {
            name: 'frame1',
            id: 'frame1',
            src: ''
        })
        .css({
            'height': '100%',
            'width': '450px'
    }).appendTo('#firster');

    function loadIframe(iframeName, url) {
        if ( window.frames[iframeName] ) {
            window.frames[iframeName].location = url;   
            return false;
        }
        return true;
    }
    $("a").click(function(e) {
        $("#frame1").attr("src", decodeURIComponent($.urlParam('url', $(this).attr("href")))); // no prepend of current URL, just use the href directly


        return false;
    })

    $.urlParam = function (name, urlItself) {
        var results = new RegExp('[\?&]' + name + '=([^&#]*)')
                          .exec(urlItself);

        return results[1] || 0;
    }

   // console.log($.urlParam('url', urlItself)); //registration

});
$(文档).ready(函数(){
$('', {
id:'第一',
样式:“位置:固定;顶部:0;底部:0;右侧:0;最大宽度:500px;z索引:120;”
}).附于(“主体”);
$('', {
名称:'frame1',
id:'frame1',
src:'
})
.css({
“高度”:“100%”,
“宽度”:“450px”
}).appendTo(“#firster”);
函数loadIframe(iframeName,url){
if(window.frames[iframeName]){
frames[iframeName].location=url;
返回false;
}
返回true;
}
$(“a”)。单击(功能(e){
$(“#frame1”).attr(“src”,decodeURIComponent($.urlpram('url',$(this.attr(“href”)));//当前url没有前缀,直接使用href即可
返回false;
})
$.urlParam=函数(名称,urlParam本身){
var results=new RegExp('[\?&]'+name+'=([^&\]*))
.exec(URL本身);
返回结果[1]| | 0;
}
//console.log($.urlParam('url',url本身));//注册
});

我相信这将在谷歌搜索结果链接上起作用,但不确定它是否可扩展,但它符合我最初的目的。另外,非常感谢所有对此问题做出贡献的人。

许多网站都有框架拦截器,不允许您在iframeTry
$(“#frame1”).attr(“src”,this.href)中打开它们
该值是一个绝对Uri,而不是标记中href属性中的任何内容。@Archer Nope。它仍然没有打开。给出与上图相同的响应。@charlietfl我试过了,当我在Google页面上时,Wikipedia页面应该在iframe中打开。好的,对于Google搜索结果,您需要获取
数据href
值。如果您查看搜索结果中的链接,您看到的是正确的。也许您应该查看从w3schools以外的站点获取信息,这些站点在很多情况下都是错误的。我尝试了
$(“a”)。单击(函数(e){$(this).attr('target',frame1')返回false;})
但是没有luckno它应该是
$(这个)。attr('target','iframe\u a')
iframe\u a
是标记的名称真的@卢卡,真的吗?是的,真的
  $(document).ready(function(){
    $("a").click(function(){
    var k=$(this).attr("src"))
        $("iframe").attr("src",k);
    });
});
<script>
 function loadIframe(iframeName, url) {
    if ( window.frames[iframeName] ) {
        window.frames[iframeName].location = url;   
        return false;
    }
    return true;
}</script>

<a href="link" onclick="return loadIframe('ifrm', this.href)">whasjjjf</a>
    <iframe name="ifrm" id="ifrm" src="tabs.html" frameborder="0">
    Your browser doesn't support iframes.</iframe>
$(document).ready(function () { 

    $('<div />', {
        id: 'firster',
        style: 'position: fixed; top: 0; bottom: 0; right: 0; max-width: 500px; z-index: 120;'
    }).appendTo('body');

    $('<iframe />', {
            name: 'frame1',
            id: 'frame1',
            src: ''
        })
        .css({
            'height': '100%',
            'width': '450px'
    }).appendTo('#firster');

    function loadIframe(iframeName, url) {
        if ( window.frames[iframeName] ) {
            window.frames[iframeName].location = url;   
            return false;
        }
        return true;
    }
    $("a").click(function(e) {
        $("#frame1").attr("src", decodeURIComponent($.urlParam('url', $(this).attr("href")))); // no prepend of current URL, just use the href directly


        return false;
    })

    $.urlParam = function (name, urlItself) {
        var results = new RegExp('[\?&]' + name + '=([^&#]*)')
                          .exec(urlItself);

        return results[1] || 0;
    }

   // console.log($.urlParam('url', urlItself)); //registration

});