一些url没有在iframe中打开

some urls are not opening in iframe

本文关键字:iframe url 一些      更新时间:2023-09-26

所以问题很简单,但我找不到解决方案。我正在创建一个投资组合插件,并试图在iframe中打开项目以显示响应布局,但问题是一些URL没有在iframe中打开,当我在ifame中点击这些URL时,什么都没有显示。这是JS fiddle

<a href="https://www.searchforenergy.com" target="myIframe">iframe2</a>
    <iframe src="" name = "myIframe"></iframe>

我想用jquery检查它是否能够在iframe中打开,然后确定,否则链接将在新选项卡中打开。

问题是由同源策略引起的。要解决这个问题,您可以在响应中添加一个允许跨来源资源共享的标头。

在apache中,您可以通过在httpd.conf或任何.htaccess文件中添加以下行来完成此操作

 Header set Access-Control-Allow-Origin "*"

此问题是由于跨来源请求被阻止:同源策略不允许读取https://www.searchforenergy.com/.这可以通过将资源移动到同一域或启用CORS来解决。

X-Frame-Options拒绝加载:https://www.searchforenergy.com/不允许交叉原点框架。

您可以使用jquery ajax错误来检查url是否可以使用javascript访问或不使用访问

$.ajax({
    url: "https://www.searchforenergy.com",
    dataType:'html',
    success: callback = function(data, textStatus, xhr)
    {
        console.log(data)
    },
    error: callback = function(data, textStatus, xhr)
    {
        console.log(data)
    }
});

阅读charlietfl 的评论后的新解决方案

HTML

<a id="btn" href="#">iframe2</a>
<iframe src="" id = "myIframe" onload="loadFrame(this)"></iframe>

Javascript

function loadFrame(frame) {
    if (!frame.contentDocument) {
        // code to open in tab
    }
}
$(document).ready(function(){
    $('#btn').click(function(){
        $('#myIframe').attr('src', 'https://www.searchforenergy.com')
    });
});