Javascript 正在将URL从链接打开到iframe
我已经创建了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” }
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
});